Python ile SQL: Başlangıç Rehberi

Giriş

Python, basit yapısı ve güçlü kütüphaneleri sayesinde veri analizi, web geliştirme ve otomasyon gibi birçok alanda kullanılan popüler bir programlama dilidir. Ancak, veri ile çalışmak isteyen geliştiriciler için SQL (Structured Query Language) de çok önemli bir roldedir. SQL, ilişkisel veritabanlarına veri eklemek, güncellemek, silmek ve sorgulamak için kullanılan standart bir dildir. Bu makalede, Python ile SQL kullanımını ele alacak, gerekli kütüphaneleri tanıtacak ve çeşitli örnekler üzerinden temel SQL sorgularının nasıl yazılacağına dair bilgiler sunacağız.

Python ile SQL Kütüphaneleri

Python’da SQL ile etkileşim kurmak için kullanabileceğiniz birçok kütüphane bulunmaktadır. Bunlar arasında en popüler olanları SQLite3, SQLAlchemy ve Pandas‘tır. SQLite3, Python’un standart kütüphanesine dahil edilmiş bir modüldür ve yerel SQLite veritabanları ile kolay bir şekilde çalışmanıza olanak tanır. SQLAlchemy, daha karmaşık ve büyük ölçekli projelerde kullanabileceğiniz bir ORM (Object-Relational Mapping) kütüphanesidir. Pandas ise veri analizi yapmak için kullanılan güçlü bir kütüphanedir ve SQL sorgularını DataFrame’ler içinde çalıştırmanıza olanak tanır.

Örneğin, SQLite3 kullanarak bir veritabanı oluşturmak oldukça basittir. Aşağıdaki kod parçası, basit bir veritabanı ve tablo oluşturmayı demonstrasyon etmektedir:

import sqlite3

db = sqlite3.connect('my_database.db')

cursor = db.cursor()
cursor.execute('''CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
db.commit()
db.close()

Bu kodda, SQLite3 kütüphanesi ile bir veritabanı bağlantısı oluşturduk ve kullanıcı bilgilerini saklayacak bir tablo oluşturduk.

SQL Sorgu Yazma

Veritabanlarımızı oluşturduktan sonra, verilerle etkileşim kurmak için SQL sorgularını yazmamız gerekecektir. SQL kullanarak veri eklemek, sorgulamak ve silmek oldukça kolaydır. İşte adım adım bu süreçler:

1. **Veri Ekleme**: Veritabanına veri eklemek için INSERT INTO sorgusunu kullanırız. Aşağıda bir kullanıcıyı veritabanına eklemek için kullanabileceğimiz bir örnek verilmiştir:

db = sqlite3.connect('my_database.db')
cursor = db.cursor()
cursor.execute('''INSERT INTO users (name, age) VALUES ('Ege Korkmaz', 28)''')
db.commit()
db.close()

2. **Veri Sorgulama**: Eklediğimiz verileri sorgulamak için SELECT sorgusunu kullanırız. İşte tüm kullanıcıların bilgilerini almak için kullanılan bir örnek:

db = sqlite3.connect('my_database.db')
cursor = db.cursor()
cursor.execute('''SELECT * FROM users''')
rows = cursor.fetchall()
for row in rows:
    print(row)
db.close()

Bu sorgu, veritabanındaki tüm kullanıcı verilerini döndürecektir. ‘fetchall()’ metodu ile tüm satırları çekerek yazdırıyoruz.

3. **Veri Silme**: Veritabanındaki verileri silmek için DELETE FROM sorgusunu kullanırız. Aşağıda belirli bir kullanıcıyı silmek için kullanılabilecek bir örnek verilmiştir:

db = sqlite3.connect('my_database.db')
cursor = db.cursor()
cursor.execute('''DELETE FROM users WHERE name='Ege Korkmaz'''')
db.commit()
db.close()

Bu sorgu, ismi ‘Ege Korkmaz’ olan kullanıcıyı veritabanından silecektir.

SQLAlchemy ile Çalışmak

SQLAlchemy, Python’da SQL ile çalışmanın daha güçlü ve esnek bir yolunu sunar. ORM desteği sayesinde, veritabanındaki tabloları Python nesneleri olarak temsil edebiliriz. Bu, kodun daha okunabilir ve yönetilebilir olmasını sağlar.

Öncelikle, SQLAlchemy kütüphanesini yüklememiz gerekir:

pip install SQLAlchemy

Veritabanı bağlantısını ve modelimizi oluşturmak için şu şekilde bir yapı kurabiliriz:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

define a User model:
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

engine = create_engine('sqlite:///my_database.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

Bu kodda, bir User modelimiz var ve veritabanı ile olan bağlantıyı kuruyoruz. Tablomuzu bu şekilde oluşturduktan sonra, veri eklemek ve sorgulamak için aşağıdaki gibi yöntemler kullanabiliriz:

new_user = User(name='Ege Korkmaz', age=28)
session.add(new_user)
session.commit()

Veri sorgulamak için:

users = session.query(User).all()
for user in users:
    print(user.name, user.age)

SQLAlchemy kullanmak, size SQL’in sağladığı esnekliği ve kontrolü, Python’un nesne yönelimli programlama özellikleri ile birleştirerek sağlamaktadır.

Pandas ile SQL Sorguları

Pandas, veri analizi yaparken SQL sorgularını doğrudan kullanmanıza olanak tanır. Pandas ile veritabanına bağlanarak sorgu yapabilir ve sonuçları bir DataFrame içerisinde alabilirsiniz. Bu yöntem, özellikle veri analizi ve görselleştirme işleri için oldukça faydalıdır.

Pandas ile SQL kullanmanın ilk adımı, gerekli kütüphaneyi kurmaktır:

pip install pandas sqlalchemy

Sonrasında veritabanına bağlanabilir ve SQL sorguları çalıştırabilirsiniz:

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('sqlite:///my_database.db')

df = pd.read_sql_query('SELECT * FROM users', engine)
print(df)

Bu kod parçası, ‘users’ tablosundaki tüm verileri bir DataFrame’e alır ve ekrana yazdırır. Pandas’ın sağladığı bu kolaylık, veri analizi yaparken oldukça büyük bir avantaj sunar.

Sonuç

Python ile SQL kullanma becerisine sahip olmak, veri ile çalışan geliştiriciler için oldukça önemlidir. SQLite3, SQLAlchemy ve Pandas gibi kütüphaneleri kullanarak, veri tabanları ile kolay bir etkileşim sağlayabilirsiniz. Bu makalede, SQL yapısını, temel SQL sorgularını ve Python ile nasıl etkileşim kurulacağını ele aldık. Artık, siz de bu bilgileri kullanarak kendi projelerinizi geliştirebilir ve SQL ile Python’un güçlerini birleştirebilirsiniz.

Her zaman daha fazla bilgi edinmek ve pratik yapmak, becerilerinizi geliştirmenin en iyi yoludur. Unutmayın, her yazılım geliştiricisi gibi siz de sürekli öğrenmeli, yeni teknolojilere aç olmalısınız. Problem çözme ve tazelik zihniyeti ile, veri dünyasında yer edinmenizi umut ediyorum.

Sonuç olarak, Python ile SQL kullanmayı öğrenmek, kariyerinizde önemli bir adım olabilir. Veritabanı yönetimi, veri analizi ve otomasyon gibi konularda yetkinlik kazanmak, sizi daha değerli bir geliştirici yapar. Bu yolculukta başarılar dilerim!

Scroll to Top