Scripti Veritabanları, modern yazılım geliştirme süreçlerinde veri saklama, düzenleme ve yönetme işlemleri için temel bir yapı sağlar. Python, SQL tabanlı veritabanlarına kolayca bağlanabilir ve veritabanı işlemleri yapabilir. Bu yazıda, Python ile bir veritabanına bağlanan, veri ekleyen, güncelleyen ve sorgulayan basit bir script örneği sunacağım.
Örnek olarak, SQLite veritabanını kullanacağız. SQLite, Python ile entegre çalışabilen hafif bir veritabanıdır ve herhangi bir sunucu gerektirmediği için geliştirme ve küçük projelerde yaygın olarak kullanılır.
İlk adım olarak, SQLite veritabanına bağlanacağız ve veri saklamak için bir tablo oluşturacağız.
import sqlite3
# Veritabanına bağlantı oluştur
conn = sqlite3.connect('example.db')
# Cursor nesnesi oluştur
cursor = conn.cursor()
# Tablo oluşturma
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL
)
''')
# Değişiklikleri kaydet
conn.commit()
# Bağlantıyı kapat
conn.close()
print("Veritabanı ve tablo oluşturuldu.")
Bu kodda, example.db
adında bir SQLite veritabanı oluşturuluyor. Ardından, users
adında bir tablo oluşturuluyor. Tablo, id
, name
ve age
gibi sütunlardan oluşuyor. Eğer tablo zaten varsa, tekrar oluşturulmaz.
Veritabanımıza kullanıcı verilerini eklemek için aşağıdaki scripti yazabiliriz:
import sqlite3
def add_user(name, age):
# Veritabanına bağlantı oluştur
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Veriyi ekleme
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", (name, age))
# Değişiklikleri kaydet
conn.commit()
# Bağlantıyı kapat
conn.close()
print(f"Yeni kullanıcı eklendi: {name}, Yaş: {age}")
# Kullanıcı ekle
add_user('Ahmet', 30)
add_user('Zeynep', 25)
Burada add_user
fonksiyonu, kullanıcının adı ve yaşını parametre olarak alır ve veritabanına ekler. SQL sorgusu içinde parametreli sorgular kullanarak SQL enjeksiyon saldırılarına karşı güvenliği artırmış olduk.
Veritabanındaki kullanıcıları sorgulamak için şu scripti yazabiliriz:
import sqlite3
def get_all_users():
# Veritabanına bağlantı oluştur
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Verileri sorgulama
cursor.execute("SELECT * FROM users")
users = cursor.fetchall()
# Kullanıcıları yazdır
for user in users:
print(f"ID: {user[0]}, İsim: {user[1]}, Yaş: {user[2]}")
# Bağlantıyı kapat
conn.close()
# Veritabanındaki tüm kullanıcıları listele
get_all_users()
Bu fonksiyon, veritabanındaki tüm kullanıcıları sorgular ve her bir kullanıcının id
, name
ve age
bilgilerini ekrana yazdırır. fetchall()
metodu, sorgudan dönen tüm sonuçları bir liste olarak alır.
Bir kullanıcının bilgilerini güncellemek için aşağıdaki gibi bir fonksiyon yazabiliriz:
import sqlite3
def update_user_age(user_id, new_age):
# Veritabanına bağlantı oluştur
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Yaşı güncelleme
cursor.execute("UPDATE users SET age = ? WHERE id = ?", (new_age, user_id))
# Değişiklikleri kaydet
conn.commit()
# Bağlantıyı kapat
conn.close()
print(f"Kullanıcının yaşı güncellendi: ID {user_id}, Yeni Yaş: {new_age}")
# Kullanıcı yaşını güncelle
update_user_age(1, 35)
Bu fonksiyon, kullanıcının id
‘sini ve yeni yaş bilgisini alır ve veritabanında ilgili kullanıcının yaşını günceller.
Bir kullanıcıyı veritabanından silmek için şu fonksiyonu kullanabiliriz:
import sqlite3
def delete_user(user_id):
# Veritabanına bağlantı oluştur
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
# Kullanıcıyı silme
cursor.execute("DELETE FROM users WHERE id = ?", (user_id,))
# Değişiklikleri kaydet
conn.commit()
# Bağlantıyı kapat
conn.close()
print(f"Kullanıcı silindi: ID {user_id}")
# Kullanıcıyı sil
delete_user(2)
Bu fonksiyon, kullanıcının id
‘sini alır ve belirtilen id
‘ye sahip olan kullanıcıyı veritabanından siler.
Yukarıdaki örnekler temel CRUD (Create, Read, Update, Delete) işlemlerini göstermektedir. Ancak veritabanıyla daha ileri seviye işlemler yapmak için aşağıdaki özelliklere göz atabilirsiniz:
Veritabanı bağlantılarını her işlem için yeniden oluşturmak yerine, bağlantıları yeniden kullanabilir ve bağlantı havuzları ile veritabanı işlemlerini daha verimli hale getirebilirsiniz. Python’da veritabanı bağlantısı yöneticisi olarak SQLAlchemy
gibi araçlar kullanılabilir.
Python ile veritabanı entegrasyonu yaparak güçlü ve dinamik uygulamalar geliştirebilirsiniz. SQLite gibi hafif veritabanları ile başlayabilir, daha büyük projeler için PostgreSQL veya MySQL gibi veritabanlarına geçiş yapabilirsiniz. Bu yazıda, veritabanı ile çalışan temel Python scriptleri oluşturmayı öğrendik. Artık veri ekleme, güncelleme, sorgulama ve silme işlemlerini Python ile rahatlıkla yapabilirsiniz.
UNCATEGORİZED
29 Ağustos 2025UNCATEGORİZED
29 Ağustos 2025UNCATEGORİZED
29 Ağustos 2025UNCATEGORİZED
29 Ağustos 2025UNCATEGORİZED
29 Ağustos 2025UNCATEGORİZED
29 Ağustos 2025UNCATEGORİZED
29 Ağustos 2025