Python Sqlite3 ile Veri Ekleme, Listeleme, Güncelleme ve Silme işlemleri

Herkese selamlar. Bu içerikte sizlere Python programlama ile Sqlite3 veritabanı işlemlerinden bahsedeceğim. Veritabanı uygulamaları sayesinde verileri depolayabilir ve ihtiyaca göre kayıt ekleme, silme, güncelleme ve listeleme gibi işlemler yapabiliriz. Bu sayede iş yüklerimiz azalacak ve zamandan tasarruf edeceğiz.

Veritabanı uygulaması için DB Browser’ın mutlaka bilgisayarda kurulu olması gerekmektedir. Bu Bağlantıya Tıklayarak programı indirebilirsiniz.

Örnek Hazır Veritabanını ve Tablosunu indirmek için tıklayın.

DB BROWSER İLE VERİTABANI OLUŞTURMA İŞLEMLERİ

1- DB Browser Uygulamasını açın. Daha sonra “Yeni Veritabanı” kısmına tıklayın.

2- Açılan pencerede “Masaüstü” kısmını seçin. Masaüstünü seçmek zorunlu değil. Fakat bu uygulamada klasör masaüstü konumuna oluşturulacaktır.

Daha sonra Yeni klasör kısmına tıklayın. Oluşturulan klasöre “veritabani” adını verin. (Türkçe karakterler kullanmamaya çalışın. ı,ö,ğ,ş,ç,ü kullanmayın)

Dosya adı kısmına “okul” yazın. Ardından Kaydet’e basın.

3- Tablo kısmına “ogrenciler” yazın. Daha sonra Ekle kısmına tıklayarak tablo için gerekli sütunları aşağıdaki örnekteki gibi oluşturun. Ardından Ok‘a basın.

INTEGER : Tam sayı barındırılacaksa bu veri tipi seçilmelidir.

TEXT : Metinsel veri barındırılacaksa bu veri tipi seçilmelidir.

REAL : Ondalıklı sayı barındırılacaksa bu veri tipi seçilmelidir.

4- Tabloyu oluşturduktan sonra veritabanındaki değişiklikleri kayıt etmeyi unutmayın.

VERİTABANI İŞLEMLERİ İÇİN GEREKLİ KODLAR

#sqlite3 kütüphanesini dahil eder.
import sqlite3

# "database.db" adlı veritabanına bağlanır.
vt = sqlite3.connect("okul.db")

#imleç oluşturur. Sql İşlemleri için gereklidir.
im = vt.cursor()

#Veritabanına kayıt ekleme işlevi(fonksiyonu)
def kayit_ekle(_ad,_soyad,_no,_sinif):
    im.execute("INSERT INTO ogrenciler(ad,soyad,no,sinif) VALUES(?,?,?,?)",(_ad,_soyad,_no,_sinif))
    vt.commit()

#Veritabanındaki kayıtları listeleme işlevi(fonksiyonu)
def listele():
    kayitSayisi = 0
    im.execute("SELECT * FROM ogrenciler")
    kayitlar = im.fetchall()
    for i in kayitlar:
        kayitSayisi += 1
        print(i)
    
    if kayitSayisi == 0:
        print("Listede herhangi bir kayıt bulunmamaktadır.")

#Öğrenci numarasına göre kayıt getirme işlevi(fonksiyonu)
def kayit_getir(_ogrenciNo):
    kayitSayisi = 0
    im.execute("SELECT * FROM ogrenciler WHERE no={0}".format(_ogrenciNo))
    liste = im.fetchall()
    for i in liste:
        kayitSayisi += 1
        print(i)

    if kayitSayisi == 0:
        print("Aradığınız kayıt listede yok.")
    elif kayitSayisi > 0:    
        print("Kayıt Listelendi.")

#Seçilen kayıdı düzelten/güncelleyen işlev
def guncelle(_ad,_soyad,_no,_sinif,_ogrenciNo):
    im.execute("UPDATE ogrenciler SET ad=?,soyad=?,no=?,sinif=? WHERE no=?",(_ad,_soyad,_no,_sinif,_ogrenciNo))
    vt.commit()
    print("Güncellendi.")

#Seçilen öğrenci numarasına göre kayıt siler.
def kayit_sil(_no):
    im.execute("DELETE FROM ogrenciler WHERE no={0}".format(_no))
    vt.commit()
    print("Kayıt Silindi.")

#Veritabanındaki tüm kayıtları siler.
def tumunu_sil():
    im.execute("DELETE FROM ogrenciler")
    vt.commit()
    print("Tüm tablo temizlendi.")


#Gerekli işlemleri listeler. Ekrana yazdırır.
print("""
    1- Kayıt Ekle
    2- Listele
    3- Kayıt Getir
    4- Düzelt/Güncelle
    5- Kayıt Sil
    6- Tümünü Sil    
    """)

#Programın çalıştığı kısım.
while True:

    #Seçilen işlem numarasına göre gerekli işlevleri(metotları) çağırır.
    secim = input("İşlemi seçiniz:")
    if secim == "1":
        ad = input("Ad:")
        soyad = input("Soyad:")
        no = input("No:")
        sinif = input("Sinifi:")
        kayit_ekle(ad,soyad,no,sinif)
        
    elif secim == "2":
        listele()

    elif secim =="3":
        ogrenciNo = input("Aradığınız Ögrencinin Numarasını Giriniz:")
        kayit_getir(ogrenciNo)

    elif secim == "4":
        listele()
        ogrenciNo = input("Öğrenci No Giriniz:")
        print("Güncellenecek Gerekli alanları tekrar doldurunuz.")
        print("--------------------------------------")
        ad = input("Ad:")
        soyad = input("Soyad:")
        no = input("No:")
        sinif = input("Sinifi:")
        guncelle(ad,soyad,no,sinif,ogrenciNo)

    elif secim == "5":
        ogrenciNumarasi = input("Öğrenci No:")
        kayit_sil(ogrenciNumarasi)

    elif secim == "6":
        tumunu_sil()

    cevap = input("Başka işlem yapmak ister misiniz?(e/h):")
    if cevap== "h":
        break

vt.close() #veritabanını kapatır.

NOT!!!: Veritabanı ile Veritabanı kodlarını barındıran python dosyası aynı klasör içerisinde olmalıdır.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

error: Content is protected !!