Python — SQLite Crud İşlemleri

MUSTAFA YILDIZ
Kodcular
Published in
5 min readJul 4, 2022

Crud işlemleri veri tabanlarının 4 temel işlemidir. Bu işlemlerin dili SQL dilindedir. Bu dil, bir programa dili ile birlikte veri tabanı üzerinde çalışır.

Aşağıda SQL dilinin komutlarını görmeyeceksiniz! SQL dilinin Crud komutlarını görmek için bkz. SQL — CRUD KOMUTLARI.

Aşağıda, SQL dilinin, SQLite veri tabanı üzerinde, Python ile kullanım kodları anlatılacaktır.

Veri Tabanı 4 Temel İşlemi:

  • Oluşturma
  • Değiştirme
  • Silme
  • Okuma

OLUŞTURMA

import sqlite3 as sqlveri_tabanı_x = sql.connect(“lokal_veritabanı.sqlite3”)
imleç_y = veri_tabanı_x.cursor()
tablo_z = imleç_y.execute(“””CREATE TABLE IF NOT EXISTS PERSON (person_no real, ad text, soyad text)”””)

Önce SQLite kütüphanesi dahil ediliyor. as komutu sayesinde, kütüphane, sql ismiyle çağırılacak.

connect komutuyla veri tabanı oluşturuluyor. Parantezleri içerisine veri tabanın ismi ile uzantısı veriliyor. Uzantı sqlite3. Uzantı bu olmak zorunda. Bu işlevi ‘veri_tabanı_x’ adlı değişken saklıyor.

Şuan veri tabanı oluşturuldu. Bunun üzerinde işlemler yapabilmem gerekiyor. Tıpkı pc’ de fareyle bir yerlere tıklayıp bir şeyler yapmam gibi. Bunun için imlece ihtiyacım var. Oluşturduğum veri tabanı üzerinde imleç gerekiyor. İmlecin fonksiyonu cursor(). Bu fonksiyona, oluşturduğum veri tabanını saklayan değişkeni veriyorum. O değişken: veri_tabanı_x. Bu işlevi de imleç_y adlı değişkende tutuyorum.

Şu an elimde bir veri tabanı ve üzerinde işlem yapabilmemi sağlayan imleç aracı var. Fakat tek başına veri tabanı bir anlam ifade etmiyor. Çünkü veri tabanını, verileri düzenlesin diye kuruyorum ama düzeni sağlayacak yapı yok. Yalnız, işlem yapabilmemi sağlayan imleç ve düzenleme yapısını barındırabilecek veri tabanı var. İskelet gibi… SQL dilinin kullanıldığı veri tabanları verileri düzenlemede tablolama kullanır. Bunun için benim bir tabloya ihtiyacım var. Bunun SQL komutunu biliyorum. bkz. SQL — CRUD KOMUTLARI. Bu yüzden yapmam gereken, imlece bu SQL komutunu verip çalıştırmak. Yani tıklamak… Tıklama fonksiyonu execute komutu ile çalışır. Ben imleci çalıştırmak istediğimden bu komuta imlecin tutulduğu değişkeni vermem gerekiyor. Veriyorum… Şimdi de SQL dilinde oluşturacağım veri tipleriyle birlikte tablo sütun adlarını veriyorum. Tüm bunları, sonuç olarak ‘tablo_z’ isimli değişkende saklıyorum.

Artık bir veri tabanım var. Bu veri tabanında verileri düzenlememe yardım edecek olan bir yapım var. Bu yapı tablo ve veri tabanı üzerinde işlemler yapabilmemi sağlayan bir imlecim var. Nihayetinde geriye yalnızca SQL dilindeki komutları imleç sayesinde tabloya aktarmak kaldı.

EKLEME

veri = “””INSERT INTO PERSON VALUES ("1","MUSTAFA","YILDIZ")”””
ekle = imleç_y.execute(veri)
kayıt = veritabanı_x.commit()

‘veri’ adlı değişkene SQL dilindeki veri ekleme komutunu verdim. Artık ‘veri’ adlı değişken benim girdiğim 1, MUSTAFA, YILDIZ verilerini saklıyor. Bu 3 veriyi saklıyor. Burada DİKKAT! Değişkenin ismi ‘veri’ olmak zorunda değil! ‘qwe’ de olabilirdi. Ben ‘veri’ ismini koydum çünkü bir örüntü yakaladım.

‘ekle’ isminde değişkende şu işlem var: imleç_y, execute komutu ile çalıştırılıyor ve çalıştırılırken ‘veri’ adlı değişken veriliyor. Bu değişkendeki bilgileri işleyecek. Kelimenin tam manasıyla çalıştıracak. ‘veri’ adındaki değişkende ne var ki ‘ekle’ değişkenindeki işlem, ‘veri’ adlı değişkeni çalıştırıyor olsun? İşte burada SQL dili giriyor. ‘veri’ adlı değişken SQL dilindeki komutu tutuyor. SQL dilindeki bu komutta EKLEME komutu var. Evet, tabloya veri ekleme komutu. Sonuç olarak imleç tıklanıldığında SQL dilindeki bu komutu çalıştırıyor.

Verileri tabloya ekledim. Son bir işim kaldı. O da eklediğim verileri tabloya kaydetmek. Bunun fonksiyonu commit(). Şimdi bu fonksiyona üzerinde işlem yaptığım veri tabanının tutulduğu değişkeni veriyorum ki o da veri_tabanı_x idi. Bu kayıt işlemini de ‘kayıt’ adlı değişkene veriyorum ve bitti !

Veri tabanına veri ekledim.

Yakaladığım örüntü:

SQL komutu ile veri almayı ve crud arasından hangi işlemi yapacağımı kontrol ediyorum. Bu, verilerin kontrol edildiği değişken olsun: ‘veri’ adlı değişken.

Python ile SQL komutunu çalıştırıyorum. SQL komutunun işlemi ne ise değişkene o ismi veriyorum. Burada işlemi eklemek idi. Bu, SQL komutunun çalıştırılıp verilerin eklendiği değişken olsun: ‘ekle’ adlı değişken.

Python ile veri tabanına tüm değişiklikleri işliyorum. Bu, verilerin işlendiği değişken olsun: ‘kayıt’ adlı değişken.

GÜNCELLEŞTİRME

veri = """UPDATE PERSON SET person_no = “2” WHERE person_no = '1' """
güncelle = imleç_y.execute(veri)
kayıt = veritabanı_x.commit()

SQL dilinde veriyi ve işlemini kodladım. Bunu ‘veri’ adlı değişkene verdim. Sonra SQL dilini çalıştırdım. Bunu da ‘güncelle’ adındaki değişkende yaptım. Nihayetinde yaptığım şeyleri veri tabanına kaydettim.

SİLME

veri = “””DELETE FROM PERSON WHERE person_no = 2
sil = imleç_y.execute(veri)
kayıt = veritabanı_x.commit()

SQL dilinde veriyi ve işlemini kodladım. Bunu ‘veri’ adlı değişkene verdim. Sonra, SQL dilini çalıştırdım. Bunu da ‘sil’ adındaki değişkende yaptım. Nihayetinde yaptığım şeyleri veri tabanına kaydettim.

OKUMA

veri = """SELECT * FROM PERSON"""
oku = imleç.execute(veri)
seç = imleç.fetchall()
yaz = print(seç)

Veri okurken veri tabanında herhangi bir değişiklik yapmıyorum. Sadece okuyorum… SQL dilinde veriyi ve işlemini kodladım. Bunu ‘veri’ adlı değişkene verdim. Sonra, SQL dilini çalıştırdım. Bunu da ‘oku’ adındaki değişkende yaptım. Daha sonra okuduklarımın hepsini seçtim. İmlecin seçtiklerimi getirmesini istiyorum. Bunun komutu fetchall() fonksiyonu. İmlecin getireceği veriler ‘seç’ adlı değişkende. İmleç, verileri getirecek de bunları benim okuyabilmem için bir şeyler yapmam lazım. Ne yapabilirim? Okumak istediğimden ekrana yazdırılsın. ‘yaz’ adlı değişkende ekrana yazdırılma işlemini yapıyorum ve tüm veriler önüme dökülüyor…

Ya da

veri = imleç.execute(“””SELECT * FROM PERSON “””)
oku = veri.fetchall()
print()
for i in oku:
print(i)

SQL — CRUD KOMUTLARI

--

--