Python'un sqlite3 Modülüyle SQLite
Veritabanları ve tablolar oluşturma, INSERT/SELECT/UPDATE, parametreli sorgular ve bağlantı yönetimi.
Python'un sqlite3 Modülüyle SQLite, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Yapay Zekâ için Veritabanları Neden Kullanılır?
Düz dosyalar, verileriniz büyüyene veya bir projenin birçok bölümü aynı kayıtlara ihtiyaç duyana kadar işe yarar. Bir veritabanı size hızlı sorgular, yapılandırılmış şemalar ve güvenli eşzamanlı erişim sağlar.
SQLite, Python'a sqlite3 modülü aracılığıyla yerleşik olarak gelen, kurulum gerektirmeyen dosya tabanlı bir veritabanıdır — yapay zekâ deneyleri ve küçük projeler için mükemmeldir.
sqlite3.connect ile Bağlanma
sqlite3.connect bir veritabanı dosyasını açar veya oluşturur ve bir bağlantı döndürür. Geçici ve RAM'de tutulan bir veritabanı için :memory: kullanın.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)İmleçler ve cursor.execute
SQL'i bağlantıdan alınan bir imleç aracılığıyla çalıştırırsınız. cursor.execute(sql) bir ifadeyi veritabanına gönderir.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Bir tabloyu şemasıyla tanımlayın. IF NOT EXISTS, ifadeyi tekrar tekrar güvenle çalıştırmanızı sağlar — tablo zaten varsa hata oluşmaz.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")Yer Tutucularla INSERT
Asla SQL'i dize biçimlendirmeyle oluşturmayın — bu yöntem SQL ekleme saldırılarına davetiye çıkarır ve tırnak işaretlerinde bozulur. ? yer tutucularını kullanın ve değerleri bir demet olarak aktarın.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)executemany ile Çok Sayıda Satır Ekleme
executemany, bir demet listesini tek ve verimli bir çağrıyla ekler — döngü içinde execute kullanmaktan çok daha hızlıdır.
rows = [
("rf", 0.88, "2026-05-29"),
("xgb", 0.91, "2026-05-29"),
]
cur.executemany(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
rows,
)conn.commit() Değişiklikleri Kaydeder
Yazma işlemleri bir işlem içinde gerçekleşir ve siz conn.commit() çağırana kadar kalıcı hâle gelmez. Bunu unutmak, yeni başlayanların en yaygın hatasıdır — bağlantı kapatıldığında verileriniz sessizce kaybolur.
conn.commit() # persist all pending INSERT/UPDATE/DELETEfetchall ve fetchone ile Sorgulama
Bir SELECT işleminden sonra sonuçları alın:
fetchone()— sıradaki tek satırfetchall()— kalan tüm satırlar, demetlerden oluşan bir liste olarak- Büyük sonuçlar için imleç üzerinde doğrudan yineleme yapın
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtreleme ve Sıralama
Ağır işi SQL yapar: WHERE ile filtreleyin, ORDER BY ile sıralayın, LIMIT ile sınırlayın. Sorgu değerleri için de yer tutucular kullanın.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Adla Erişim için Satır Üreticisi
Varsayılan olarak satırlar demetlerdir. Sütunlara adlarıyla erişmek için conn.row_factory = sqlite3.Row ayarını yapın; bu, kodu çok daha okunabilir hâle getirir.
import sqlite3
conn = sqlite3.connect("ml.db")
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM experiments")
row = cur.fetchone()
print(row["name"], row["accuracy"])Güvenlik için Bağlam Yöneticileri
Bağlantı üzerinde with kullanmak, başarı durumunda otomatik olarak kaydetme ve hata durumunda geri alma işlemi yapar. closing ile birleştirildiğinde temizliğin garanti edilmesini sağlar.
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("ml.db")) as conn:
with conn: # auto commit/rollback
conn.execute(
"INSERT INTO experiments (name, accuracy) VALUES (?, ?)",
("svm", 0.79),
)Hızlı Kontrol: Yazma İşlemlerini Kalıcı Hâle Getirme
Birkaç INSERT ifadesi çalıştırdınız ve ardından bağlantıyı kapattınız; ancak sonraki açışınızda veriler yoktu.
Özet: sqlite3 ile SQLite
Artık Python'dan gerçek bir veritabanı kullanabilirsiniz:
sqlite3.connectve bircursor- Güvenli şemalar için
CREATE TABLE IF NOT EXISTS ?yer tutucuları veexecutemanyileINSERT- Yazma işlemlerini kalıcı hâle getirmek için
conn.commit() fetchone/fetchall,WHERE/ORDER BY/LIMIT- Temiz ve güvenli kod için
sqlite3.Rowve bağlam yöneticileri
Sıradaki adım: pandas ile SQL arasında köprü kurmak.
Sıkça Sorulan Sorular
“Python'un sqlite3 Modülüyle SQLite” dersi ücretsiz mi?
Evet — “Python'un sqlite3 Modülüyle SQLite” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Python'un sqlite3 Modülüyle SQLite” dersinde ne öğreneceğim?
Veritabanları ve tablolar oluşturma, INSERT/SELECT/UPDATE, parametreli sorgular ve bağlantı yönetimi. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Python'un sqlite3 Modülüyle SQLite” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Python'un sqlite3 Modülüyle SQLite
- Pandas ve SQL Entegrasyonu
- Makine Öğrenmesi Sonuçlarını Depolama ve Sorgulama
- Vektör Veritabanlarına Giriş