Merhaba değerli Python severler ve TurkHackTeam üyeleri.
Bu konumuzda başlıktan da anlayabileceğiniz üzere Python'da SQLite3 ile yapabileceğimiz birkaç şeyi göreceğiz.
Konuya başlamadan söylemeliyim ki Python'da SQLite3 ile çalışırken veritabanı oluşturmak ve veri işlemleri yapmak gerçekten basit. C# dilindeki gibi karmaşık işlemlerle uğraşmıyoruz.
Bu konumuzda başlıktan da anlayabileceğiniz üzere Python'da SQLite3 ile yapabileceğimiz birkaç şeyi göreceğiz.
Konuya başlamadan söylemeliyim ki Python'da SQLite3 ile çalışırken veritabanı oluşturmak ve veri işlemleri yapmak gerçekten basit. C# dilindeki gibi karmaşık işlemlerle uğraşmıyoruz.
UYARI: Lütfen bu konuyu okumadan önce Python ve en azından giriş seviye veritabanı programlaması bildiğinizden emin olunuz.
Veritabanı Oluşturmak
SQLite3 kullanırken veri tabanı oluşturmak yukarıda da söylediğim gibi çok basit, isterseniz aşağıdaki kod öbeğine göz gezdirelim ve kodun ne işe' yaradığını kavrayalım.
Python:
import sqlite3
bglnt = sqlite3.connect("veritabani.db") # bglnt değişkeni oluşturuyoruz ve bu değişken sayesinde veritabanına bağlanıyoruz.
cursor = bglnt.cursor()
cursor.execute("CREATE TABLE uyeler (id INT, kullaniciadi TEXT, parola TEXT)") # veritabani.db adlı veritabanı dosyamızda 'uyeler' tablomuzu oluşturuyoruz.
bglnt.commit()
Bu veritabanını görsel olarak göstermem gerekirse şöyle gösterebilirim. İçine daha herhangi bir veri atmadığımız için şu anlık içi boş.
id | kullaniciadi | parola |
---|---|---|
| | |
Kodu bu haliyle birden fazla çalıştırmayı denerseniz hata alabilirsiniz veya veritabanınız sıfırlanabilir, çünkü her çalıştığında tekrardan 'veritabanı.db' içinde 'uyeler' tablosunu oluşturmaya çalışıyor. Bunun engellemek için aşağıdaki kodu kullanabilirsiniz.
Görebileceğiniz üzere kodumuza yeni 3 kelime eklendi. Bu eklediğimiz 3 kelimeyi Türkçe'ye çevirmemiz gerekir ise karşılığı şu olacaktır: "Halihazırda Yoksa".
Eğer hata(ları)mızdan kurtulduysak ve veritabanımızı başarılı bir şekilde oluşturduysak veri girmeyi ve veri çekmeyi görebiliriz.
Veri Girmek
SQLite3'de neredeyse her şey basit olduğu gibi veri girmek de aşırı basit. Tek yapmanız gereken cursor ile veriyi çekmek.
Basitçe veri girmek için alttaki kodu kullanabilirsiniz.
Görebileceğiniz üzere veritabanımıza az önce 1 IDsine sahip bir üye ekledik.
Bunun yerine daha farklı bir şekilde daha veri girme işlemi yapabilirsiniz. Bunu da aşağıda gösterdim.
Anlık olarak veritabanımızı görsel olarak görmek isterseniz aşağıdaki gibi bir görüntü olacaktır.
Python:
import sqlite3
bglnt = sqlite3.connect("veritabani.db")
cursor = bglnt.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS uyeler (id INT, kullaniciadi TEXT, parola TEXT)")
bglnt.commit()
Görebileceğiniz üzere kodumuza yeni 3 kelime eklendi. Bu eklediğimiz 3 kelimeyi Türkçe'ye çevirmemiz gerekir ise karşılığı şu olacaktır: "Halihazırda Yoksa".
Eğer hata(ları)mızdan kurtulduysak ve veritabanımızı başarılı bir şekilde oluşturduysak veri girmeyi ve veri çekmeyi görebiliriz.
Veri Girmek
SQLite3'de neredeyse her şey basit olduğu gibi veri girmek de aşırı basit. Tek yapmanız gereken cursor ile veriyi çekmek.
Basitçe veri girmek için alttaki kodu kullanabilirsiniz.
Python:
import sqlite3
bglnt = sqlite3.connect("veritabani.db")
cursor = bglnt.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS uyeler (id INT, kullaniciadi TEXT, parola TEXT)")
bglnt.commit()
cursor.execute("INSERT INTO uyeler VALUES (1, 'ZiksthemW', 'CokGizliBirParola!123')")
bglnt.commit()
Görebileceğiniz üzere veritabanımıza az önce 1 IDsine sahip bir üye ekledik.
Bunun yerine daha farklı bir şekilde daha veri girme işlemi yapabilirsiniz. Bunu da aşağıda gösterdim.
Python:
import sqlite3
bglnt = sqlite3.connect("veritabani.db")
cursor = bglnt.cursor()
id = 2
ad = "Ziks"
sifre = "CokGizliBirParola!123"
cursor.execute("CREATE TABLE IF NOT EXISTS uyeler (id INT, kullaniciadi TEXT, parola TEXT)")
bglnt.commit()
cursor.execute("INSERT INTO uyeler VALUES (?, ?, ?)", (id, ad, sifre)) # INSERT INTO methodu ile verileri hangi tabloya gireceğimizi seçiyoruz.
bglnt.commit()
Anlık olarak veritabanımızı görsel olarak görmek isterseniz aşağıdaki gibi bir görüntü olacaktır.
id | kullaniciadi | parola |
---|---|---|
1 | Ziks | CokGizliBirParola! |
Veri Çekmek
SQLite3'de ise veri çekmek veri girmekten daha da basit. Tek yapmanız gereken cursor ile bilgileri çekmek. Aşağıya basit bir örnek bıraktım.
Veritabanından tüm verileri çekmek
Böyle yaparsanız veritabanında bulunan tüm verileri çekersiniz. Fakat sadece bir veriyi çekmek isterseniz aşağıdaki methodu kullanabilirsiniz.
Veritabanını Görsel Olarak Açmak
SQLite3 aynı zamanda veritabanınızı görsel olarak görmenize de olanak sağlıyor. Bunu yapmak için sadece 'DB Browser for SQLite' programına ihtiyacınız var, ki bu programı da BURADAN indirebilirsiniz. Programın kullanımı çok basit, aşağıdaki fotoğrafları takip ederseniz kolayca kavrayabilirsiniz.
SQLite3'de ise veri çekmek veri girmekten daha da basit. Tek yapmanız gereken cursor ile bilgileri çekmek. Aşağıya basit bir örnek bıraktım.
Veritabanından tüm verileri çekmek
Python:
import sqlite3
bglnt = sqlite3.connect("veritabani.db")
cursor = bglnt.cursor()
id = 2
ad = "Ziks"
sifre = "CokGizliBirParola!123"
cursor.execute("CREATE TABLE IF NOT EXISTS uyeler (id INT, kullaniciadi TEXT, parola TEXT)")
bglnt.commit()
cursor.execute("INSERT INTO uyeler VALUES (?, ?, ?)", (id, ad, sifre))
bglnt.commit()
cursor.execute("SELECT * FROM uyeler;") # 'uyeler' tablosundan tüm sütunları/satırları çek komutu veriyoruz.
data = cursor.fetchall() # Verileri 'data' değişkenine kaydediyoruz.
for id, kullaniciadi, parola in data:
print(id, kullaniciadi, parola)
Böyle yaparsanız veritabanında bulunan tüm verileri çekersiniz. Fakat sadece bir veriyi çekmek isterseniz aşağıdaki methodu kullanabilirsiniz.
Python:
import sqlite3
bglnt = sqlite3.connect("veritabani.db")
cursor = bglnt.cursor()
id = 3
ad = "Ziks"
sifre = "CokGizliBirParola!123"
cursor.execute("CREATE TABLE IF NOT EXISTS uyeler (id INT, kullaniciadi TEXT, parola TEXT)")
bglnt.commit()
cursor.execute("INSERT INTO uyeler VALUES (?, ?, ?)", (id, ad, sifre))
bglnt.commit()
cursor.execute("SELECT * FROM uyeler WHERE id = 3;") # IDsi 3 rakamına eşit tüm verileri çekiyoruz.
data = cursor.fetchall()
for id, kullaniciadi, parola in data:
print(id, kullaniciadi, parola)
Veritabanını Görsel Olarak Açmak
SQLite3 aynı zamanda veritabanınızı görsel olarak görmenize de olanak sağlıyor. Bunu yapmak için sadece 'DB Browser for SQLite' programına ihtiyacınız var, ki bu programı da BURADAN indirebilirsiniz. Programın kullanımı çok basit, aşağıdaki fotoğrafları takip ederseniz kolayca kavrayabilirsiniz.
Son olarak size kendi tavsiyem olan bir kod örneği vereceğim. Şahsen böyle kullanıyorum ve daha basit ve kullanışı daha kolaylı geliyor. Kullanıp kullanmamak size kalmış.
Python:
import sqlite3
def veriCek(method, yanit):
if method == None and yanit == None:
cursor.execute("SELECT * FROM uyeler;")
return cursor.fetchall()
else:
cursor.execute(f"SELECT * FROM uyeler WHERE {method} = '{yanit}';")
return cursor.fetchone()
def tabloolustur():
cursor.execute("CREATE TABLE IF NOT EXISTS uyeler (id INT, kullaniciadi TEXT, parola TEXT)")
bglnt.commit()
veriCek(None, None)
tabloolustur()
SON SÖZ
Evet, konumuz buraya kadardı. Umarım beğenmişsinizdir ve anlatımım hoşunuza gitmiştir. Sormak istediğiniz birşey var ise özel mesaj ile veya konu altına yazarak yanıt alabilirsiniz.