Python SQL Sorguları

Python SQL Sorguları

Python'da SQL sorguları kullanarak veritabanlarıyla etkileşim kurabilirsiniz. SQL (Structured Query Language), veritabanı üzerinde veri sorgulama, ekleme, güncelleme ve silme gibi işlemleri yapmanızı sağlar. Python'da SQL sorguları genellikle sqlite3, mysql-connector-python, psycopg2 gibi kütüphaneler aracılığıyla gerçekleştirilir.

Bu rehberde, Python'da SQL sorgularını SQLite kullanarak adım adım inceleyeceğiz. Diğer veritabanları için de mantık benzer olup, kullandığınız veritabanına göre kütüphane değişiklikleri yapmanız yeterlidir.

1. SQLite Kullanarak Python'da SQL Sorguları

a. Veritabanı Bağlantısı Kurma

Öncelikle veritabanına bağlanmamız gerekir. sqlite3 modülü ile SQLite veritabanına bağlanalım.

import sqlite3 # Veritabanına bağlan veya yeni bir veritabanı oluştur conn = sqlite3.connect('example.db') # İmleç (cursor) oluştur cursor = conn.cursor()

b. Tablo Oluşturma (CREATE TABLE)

Bir veritabanı tablosu oluşturmak için SQL'de CREATE TABLE ifadesi kullanılır. Python'da bu sorguyu çalıştırmak için cursor.execute() metodunu kullanırız.

# Tablo oluşturma sorgusu cursor.execute(''' CREATE TABLE IF NOT EXISTS kullanicilar ( id INTEGER PRIMARY KEY AUTOINCREMENT, isim TEXT, yas INTEGER ) ''') # Değişiklikleri kaydet conn.commit()

c. Veri Ekleme (INSERT INTO)

Veritabanına veri eklemek için INSERT INTO ifadesi kullanılır.

# Tek bir veri ekleme cursor.execute(''' INSERT INTO kullanicilar (isim, yas) VALUES (?, ?) ''', ('Ali', 25)) # Değişiklikleri kaydet conn.commit() # Birden fazla veri ekleme veriler = [('Ayşe', 30), ('Mehmet', 22), ('Ahmet', 27)] cursor.executemany(''' INSERT INTO kullanicilar (isim, yas) VALUES (?, ?) ''', veriler) # Değişiklikleri kaydet conn.commit()

d. Veri Sorgulama (SELECT)

Veritabanındaki verileri sorgulamak için SELECT ifadesini kullanırız. Sorgulama işlemleri genellikle cursor.execute() ile yapılır ve sonuçlar fetchall() veya fetchone() ile alınır.

# Tüm verileri sorgulama cursor.execute('SELECT * FROM kullanicilar') kullanicilar = cursor.fetchall() for kullanici in kullanicilar: print(kullanici)

e. Belirli Kriterlerle Veri Sorgulama

Verileri belirli bir kritere göre sorgulamak için SQL'in WHERE ifadesi kullanılır.

# Yaşı 25'ten büyük olan kullanıcıları sorgulama cursor.execute('SELECT * FROM kullanicilar WHERE yas > 25') sonuc = cursor.fetchall() for row in sonuc: print(row)

f. Verileri Güncelleme (UPDATE)

Bir kaydı güncellemek için UPDATE ifadesi kullanılır.

# Yaşı 25 olan kullanıcının adını güncelle cursor.execute(''' UPDATE kullanicilar SET isim = ? WHERE yas = ? ''', ('Ali Veli', 25)) # Değişiklikleri kaydet conn.commit()

g. Veri Silme (DELETE)

Veritabanındaki bir kaydı silmek için DELETE FROM ifadesi kullanılır.

# Yaşı 22 olan kullanıcının kaydını sil cursor.execute(''' DELETE FROM kullanicilar WHERE yas = ? ''', (22,)) # Değişiklikleri kaydet conn.commit()

h. Veritabanı Bağlantısını Kapatma

İşlemler tamamlandıktan sonra veritabanı bağlantısını kapatmayı unutmamalısınız.

# Veritabanı bağlantısını kapatma conn.close()

2. MySQL Kullanarak SQL Sorguları

MySQL gibi daha büyük ölçekli veritabanlarında da SQL sorguları benzer şekilde çalışır. MySQL ile bağlanmak için mysql-connector-python kütüphanesi kullanılabilir. Aşağıda örnek bir MySQL bağlantısı ve sorgusu gösterilmiştir.

import mysql.connector # MySQL bağlantısı oluştur conn = mysql.connector.connect( host="localhost", user="root", password="password", database="veritabani_adi" ) cursor = conn.cursor() # Veri ekleme cursor.execute(''' INSERT INTO kullanicilar (isim, yas) VALUES (%s, %s) ''', ("Mehmet", 30)) # Değişiklikleri kaydet ve bağlantıyı kapat conn.commit() conn.close()

Önemli Noktalar

  • Parametreli Sorgular: SQL enjeksiyon saldırılarından korunmak için parametreli sorgular kullanın. Bu, kullanıcıdan alınan verilerin güvenli bir şekilde SQL sorgularında kullanılmasını sağlar.

    cursor.execute('SELECT * FROM kullanicilar WHERE yas = ?', (25,))
  • commit() İşlemi: Veritabanına veri ekleme, güncelleme veya silme işlemlerinde mutlaka conn.commit() yapmalısınız. Aksi takdirde değişiklikler kaydedilmez.

Sonuç

Python ile SQL sorguları çalıştırmak oldukça esnek ve güçlüdür. SQLite, MySQL, PostgreSQL gibi veritabanlarıyla Python'da sorunsuz bir şekilde çalışabilir, veri ekleme, sorgulama, güncelleme ve silme işlemlerini SQL kullanarak gerçekleştirebilirsiniz.



Yorum Ekle

Üzerine gel