Press "Enter" to skip to content

Python’un güçlü veritabanı: Sqlite

Arkadaşlar bugün sizlere Python ile birlikte gelen ve en az piyasadaki diğer veritabanları kadar güçlü olan Sqlite’den bahsetmek istiyorum.
Programlarımızda verilerimizi düzenli bir şekilde tutmak , programımız kapandığında verilerimizi kaybetmemek için veritabanına ihtiyaç duyarız.
Sqlite ise python ile program yazarken ek bir yükleme yapmadan veritabanı oluşturma , veri ekleme , silme düzenleme gibi bütün işlemleri yapabileceğiniz bir ortam sunar.

Tabi ki programlarınızda sqlite kullanmak için önce programınıza import etmek zorundasınız.

import sqlite3

Bu işlemi yaptıktan sonra bir veritabanı oluşturmak , veya var olan veritabanına bağlanmak için;

import sqlite3
baglanti = sqlite3.connect(“/home/grnt/Masaüstü/veritabani.db”)
baglanti.close()

Burada ben kişisel bilgisayarımda Ubuntu kullandığım için , yol bilgisini kendi bilgisayarıma göre yazdım. Sizler başka platformlarda , kendinize uygun olan yolu yazabilirsiniz. Hatta os.path modülü ile portable bir uygulama yazabilirsiniz.
Ayrıca veritabanı ile uğraşırken her açtığımız bağlantıyı kapatmamız , programımızı tekrar tekrar çalıştırdığımızda hata vermesinin önüne geçecektir. Veritabanını oluşturduktan sonra sıra ,tablo oluşturmaya geldi. Biliyorsunuz ki veritabanlarında bilgiler tablolar halinde(satır ve sütunlar halinde) tutulur.

import sqlite3
baglanti = sqlite3.connect(“/home/grnt/Masaüstü/veritabani.db”)
isaretci = baglanti.cursor()
isaretci.execute(“””
CREATE TABLE ogrenciler (
id INTEGER PRIMARY KEY,
no INTEGER NOT NULL,
ad VARCHAR(25),
soyad VARCHAR(25))
“””)
baglanti.close()

Evet , şimdi yazdıklarımızı biraz açıklayalım. Öncelikle veritabanımızda işlem yapabilmek için işaretci değişkeninine ihtiyacımız var. Bunu ise baglanti objesinin cursor() methodu ile yakalıyoruz. Daha sonra veritabanında yapacağımız işlemler için işaret objesinin execute() işlevini kullanıyoruz. Temel mantık böyle arkadaşlar. Execute fonksiyonunun içerisinde yazdıklarımız ise aslında temel SQL komutları. Bilmeyen arkadaşlar için açıklayacak olursak. CREATE TABLE ile tablo oluşturma işlemi başlattık, bu tabloya ogrenciler ismini verdik. Daha sonra ogrenciler tablosunda olmasını istediğimiz sütunları(id,no,ad,soyad) yazmaya başladık. Burada sayı değerleri için , id ve no , gibi INTEGER tipinde veri tanımladık. İçinde karakter dizisi olanları belirtmek içinse VARCHAR(25)-25 girilebilecek en uzun veriyi ifade eder- ifadesini kullandık. Söylediğim gibi bu kısımların Python ile ilgisi yok , bunlar tamamen SQL’dir arkadaşlar.
Tablo oluşturduğumuza göre içine bir adet veri girmenin zamanı geldi arkadaşlar. Ama burda önemli bir nokta var , tablomuzu bir kere oluşturduktan sonra bir daha aynı kodları çalıştırmaya kalkarsanız hata alırsınız. Bir tablo bir kere oluşturulur ve aynı isimde ikinci bir tablo oluşturamazsınız.Bu nedenle veri ekleme işlemini yeni bir .py betiğinde yapmanızda fayda var.

import sqlite3
baglanti = sqlite3.connect(“/home/grnt/Masaüstü/veritabani.db”)
isaretci = baglanti.cursor()
isaretci.execute(“””
INSERT INTO ogrenciler (id,no,ad,soyad) VALUES (1,123,”Ugur”,”Soğukpınar”)
“””)
baglanti.commit()
baglanti.close()

Evet arkadaşlar , şimdiye kadar sqlite ve python betiğimiz arasında bir veritabanı bağlantısı kurup , betik üzerinden nasıl SQL komutlarını çalıştırırız bunları gördük. Şimdi ise en son eklediğimiz veriyi çekip ekrana yazdırmayı görelim arkadaşlar.

import sqlite3
baglanti = sqlite3.connect(“/home/grnt/Masaüstü/veritabani.db”)
isaretci = baglanti.cursor()
db = isaretci.execute(” SELECT * FROM ogrenciler “)
print db.fetchall()
baglanti.close()

Evet arkadaşlar sqlite temel olarak böyle kullanılıyor. Dediğim gibi burda Python ile ilgili kısmı sadece bağlantılar , veritabanı üzerinde yapacağınız bütün değişiklikler SQL komutları ile ilgilidir. SQL komutlarını python betiğinde çalıştırmak için sadece “execute” fonksiyonuna ihtiyacımız var o kadar.