Python ile SQLite Veritabanı İşlemleri

Python, basit ve güçlü yapısı sayesinde veritabanı işlemlerinde sıkça tercih edilen bir programlama dilidir. Hafif ve gömülü bir veritabanı çözümü arıyorsanız, SQLite tam size göre! Bu yazıda, Python ile SQLite kullanarak temel veritabanı işlemlerinin nasıl yapılacağını adım adım öğreneceksiniz.


📌 SQLite Nedir?

SQLite, sunucu gerektirmeyen, hafif, gömülü bir veritabanı motorudur. Tek bir dosya içinde tüm veritabanı verilerini barındırır. Mobil uygulamalardan küçük web projelerine kadar pek çok alanda tercih edilir.


⚙️ Python ile SQLite Kullanımı

Python’da SQLite ile çalışmak için ek bir kütüphane yüklemenize gerek yoktur. Standart kütüphaneler arasında yer alan sqlite3 modülünü kullanabilirsiniz.

  • Veritabanı Oluşturma ve Bağlantı
import sqlite3

# Veritabanı dosyasına bağlan (yoksa oluşturur)
conn = sqlite3.connect("veritabani.db")
cursor = conn.cursor()

  • Tablo Oluşturma
cursor.execute("""
CREATE TABLE IF NOT EXISTS kullanicilar (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    ad TEXT,
    soyad TEXT,
    email TEXT
)
""")
conn.commit()

  • Veri Ekleme
cursor.execute("INSERT INTO kullanicilar (ad, soyad, email) VALUES (?, ?, ?)", 
               ("Ali", "Yılmaz", "[email protected]"))
conn.commit()

  • Veri Okuma
cursor.execute("SELECT * FROM kullanicilar")
veriler = cursor.fetchall()
for veri in veriler:
    print(veri)

  • Veri Güncelleme
cursor.execute("UPDATE kullanicilar SET email = ? WHERE id = ?", 
               ("[email protected]", 1))
conn.commit()

  • Veri Silme
cursor.execute("DELETE FROM kullanicilar WHERE id = ?", (1,))
conn.commit()

  • Bağlantıyı Kapatma
conn.close()


✅ İpuçları

  • ? kullanımı, SQL injection saldırılarına karşı güvenlik sağlar.
  • conn.commit() komutu, değişikliklerin kalıcı olması için gereklidir.
  • try-except blokları ile hata yönetimi yapılmalıdır.

🎯 Ne Zaman SQLite Tercih Etmeli?

  • Küçük ve orta ölçekli projeler için
  • Tek kullanıcıya yönelik masaüstü uygulamaları
  • Hızlı prototipleme süreçlerinde
  • Mobil uygulamalarda

Örnek Proje: Ürün Takip Sistemi

import sqlite3

baglan=sqlite3.connect('urunler.db')
cursor=baglan.cursor()

while True:
    print("1- Ürün Ekle")
    print("2- Ürün Listele")
    print("3- Ürün Sil")
    print("4- Ürün Güncelle")
    print("5- Ürün Bilgileri")
    print("q- Çıkış")
    print("________________________")
    islem=str(input("İşlem: "))
    if islem=="1":
        u_id=int(input("Ürün ID: "))
        u_ad=str(input("Ürün Adı: "))
        u_adet=int(input("Ürün Adet: "))
        u_fiyat=int(input("Ürün Fiyat: "))
        cursor.execute("INSERT INTO stok VALUES (?,?,?,?)",(u_id,u_ad,u_adet,u_fiyat))
        print("ÜRÜN BAŞARIYLA EKLENDİ\n___________________________")
    elif islem=="2":
        cursor.execute("SELECT * FROM stok") 
        veriler=cursor.fetchall() #veritabanından alınan verileri
        #liste biçiminde getirir
        for i in veriler:
            print(i)
        print("____________________________")
    elif islem=="3":
        cursor.execute("SELECT * FROM stok") 
        veriler=cursor.fetchall() #veritabanından alınan verileri
        #liste biçiminde getirir
        for i in veriler:
            print(i)
        print("____________________________")
        uid=int(input("Silinecek Ürünün ID No: "))
        cursor.execute("DELETE FROM stok WHERE urun_id=?",(uid,))
        #where koşul demek. Veritabanında bulunan urun_id ile kullanıcının
        #girdiği uid ye girdiği ile eşleşen kaydı siler
        print("ÜRÜN BAŞARIYLA SİLİNDİ")
        print("____________________________")
    elif islem=="4":
        cursor.execute("SELECT * FROM stok") #stok tablosundaki tüm verileri seç
        veriler=cursor.fetchall() #veritabanından alınan verileri
        #liste biçiminde getirir
        for i in veriler:
            print(i)
        print("____________________________")
        urunid=int(input("Güncellenecek Ürünün ID No: "))
        urunadet=int(input("Güncel Ürün Adet:"))
        urunfiyat=int(input("Güncel Ürün Fiyat: ")) 
        cursor.execute('UPDATE stok SET urun_adet=80, urun_fiyat=150 WHERE urun_id=? ',(urunadet,urunfiyat,urunid))
        print("ÜRÜN BAŞARIYLA GÜNCELLENDİ")
    elif islem=="5":
        urid=int(input("Görüntülenecek Ürünün ID NO: "))
        cursor.execute("SELECT * FROM stok WHERE urun_id=?",(urid,))
        veri=cursor.fetchall()
        print(veri)
        print("____________________________")
    elif islem=="q":
        print("ÇIKIŞ YAPILDI")
        break

    baglan.commit() #yaptığımız işlemleri kaydeder

Sonuç

Python ile SQLite kullanarak güçlü ve esnek veritabanı uygulamaları geliştirebilirsiniz. Projenizin ihtiyaçlarına göre SQL sorgularını genişleterek daha karmaşık işlemleri de rahatlıkla gerçekleştirebilirsiniz.

guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
0
YORUM YAPx