# Python SQLite Veritabanı
Python Sqlite veritabanı işlemlerini öğreniyoruz.
SQLite, hafif ve disk tabanlı bir veritabanı çözümüdür. Herhangi bir ayrı sunucu işlemine gerek kalmadan ve basit standart sql söz dizimi ile cihazların yerel hafızalarında bile kullanılabilir. Birçok dil ile kullanımı olduğu gibi Python ile de rahatlıkla entegre dilebilir.
1. SQLite Avantajları
Bir modül olarak projenize rahatlıkla dahil edebilirsiniz
Ayrı bir yazılım veya sunucu kurmanıza gerek yoktur.
Veritabanını diskinizde saklayabilirsiniz ve kolaylıkla transfer edebilirsiniz.
Söz dizimi oldukça basittir, rahat öğrenilebilir.
Açık kaynak kodludur, istediğiniz düzenlemeleri yapabilirsiniz.
SQLite her ne kadar basit bir veritabanı gibi gözüksede oldukça güçlü bir veritabanıdır ve kullanımı yaygındır.
2. Veritabanı İşlemleri
Python ile SQLite veritabanı üzerinde yapacağımız işlemleri bu başlık altında sırasıyla işleyeceğiz. Fakat öncesinde sqlite3
modülünü projenize dahil etmelisiniz.
Ardından işlemlerimize geçebiliriz.
2.1 Veritabanı Oluşturma
İlk olarak yeni bir veritabanı oluşturmak veya mevcut bir veritabanına bağlanmak için connect()
fonksiyonunu kullanmalıyız. Bağlanacağımız veritabanı mevcut değilse otomatik olarak oluşturulacaktır.
SQLite veritabanı uzantısı herhangi bir terim olabilir. Genel olarak db
, db3
, sqlite
ve sqlite3
kullanılır ama siz başka bir isimde seçebilirsiniz. (Örneğin veritabani.elma)
Eğer isterseniz veritabanını tam adres göstererek de oluşturabilirsiniz.
Aynı şekilde RAM veya sabit disk üzerinde geçici bir veritabanı da oluşturabilirsiniz.
Daha çok test ortamları için kullanılan geçici veritabanları program sonlandırıldığında veya veritabanı bağlantısı kapatıldığında silinecektir.
2.2 İmleç Oluşturma
Yeni oluşturduğumuz veya mevcut olan bir veritabanına bağlandıktan sonra üzerinde işlem yapabilmek için cursor()
fonksiyonu ile imleç oluşturmamız gerekiyor.
2.3 Yeni Tablo Oluşturma
SQL komutlarını oluşturabilmek için imlecimizle beraber execute()
fonksiyonunu kullanmalıyız. Böylelikle tüm SQL komutlarını veritabanımız üzerinde çalıştırabiliriz.
Artık veritabanımızda ogrenciler isimli ve iki sütunlu (isim,yas) bir tablo oluşturmuş olduk. Daha uzun komutlarınızı daha rahat okuyabilmek için """
işareti ile birden fazla satırda kullanabilirsiniz.
Ayrıca daha rahat bir kullanım için sql komutlarınızı bir değişkene atayarak execute()
fonksiyonuna da gönderebilirsiniz.
Yukarıdaki yöntemlerle tablo oluşturduğunuzda tekrar aynı komutu çalıştırırsanız zaten bir kere oluşturulduğu için "sqlite3.OperationalError: table ogrenciler already exists" hatası verecektir.
Uyarıda ki hatayı engellemek için tablo oluşturma komutunu IF NOT EXISTS
ile güncelleyiniz. Böylece tablo zaten mevcutsa tekrardan oluşturulmaya çalışılmayacaktır.
2.4 ~INSERT~ ile Yeni Satır Ekleme
Tablomuza yeni veriler girebilmek için sql INSERT
komutunu kullanmalıyız.
Aynı mantıkla komutumuzu yazdık ve imleç ile veritabanına işlettik. Fakat veritabanımızı kontrol ettiğinizde yeni verilerin eklenmemiş olduğunu göreceksiniz. Eğer yapılan değişikliklerin veritabanına uygulanmasını istiyorsanız commit()
fonksiyonunu çalıştırmanız gerekiyor.
Artık yeni verileri tablonuzda görebilirsiniz.
2.5 ~SELECT~ ile Tablodaki Verileri Seçmek
Tablomuza örnek veriler ekledikten sonra bu verileri seçmek için SELECT
komutunu kullanırız.
isim | yas |
Yunus | 24 |
Ahmet | 30 |
Deniz | 15 |
Örnek tablomuzdaki tüm verileri çekmek için öncelikle sql komutumuzu çalıştıralım ve ardından fetchall()
fonksiyonu ile tüm verileri değişkenimize atalım. Ardından tüm verilerimiz demet halinde dönecektir.
Tüm satırları çekmek istediğimizde for
terimini de kullanabiliriz.
Eğer tek tek satır çekmek istiyorsanız bu sefer fetchone()
fonksiyonunu kullanmalısınız. fetchone()
fonksiyonu her çalıştığında sıradaki satırı çeker.
Çektiğiniz tek bir satırın sütunlarına ulaşmak için demet elemanlarını kullanabiliriz.
Tümünü veya tekini çekmek yerine belirlediğiniz adette satır çekmek için fetchmany()
fonksiyonunu kullanabilirsiniz.
Adet sayısınca çekeceğiniz veriler üzerinde fetchone()
fonksiyonu ile gezerken for
döngüsünü de kullanabiliriz.
2.6 ~UPDATE~ ile Veri Güncelleme
Elimizdeki tabloda yer alan veriler üzerinde bir güncelleme yapmak istediğimizde UPDATE
sql komutunu kullanırız. Örnek verirsek elimizde aşağıdaki gibi bir tablo olduğunu farzedelim.
isim | yas |
Yunus | 25 |
Özlem | 15 |
Ahmet | 30 |
Örnek tablomuz üzerindeki Ahmet isimli kullanıcının yaşını 50 olarak güncelleyelim.
Verileri ? ile işaretleyip verileri demet halinde execute()
fonksiyonuna vermemizin ardından hemen sonucu kontrol edelim.
2.7 ~DELETE~ ile Veri Silme
Tablomuz üzerindeki bir veriyi silmek için DELETE
sql komutunu kullanmalıyız. Örnek olarak aynı tablo üzerinde yer alan Yunus kullanıcısını silelim.
Tek elemanlı bir demet kullandığımız için elemandan sonra virgül koyuyoruz ve Yunus isimli satırı silmek istediğimizi söylüyoruz. Ardından sonucumuz şu şekilde oluyor.
2.8 Veritabanı Bağlantısını Kapatmak
Veritabanı üzerindeki işlerinizi tamamladığınızda veritabanı bağlantısını sonlandırmak için close()
fonksiyonunu kullanmalısınız.
3. SQLite Browser Kullanımı
SQLite Browser, elinizdeki veritabanı üzerindeki çalışmalarınızı bir arayüz üzerinden yapmanızı sağlar. Basit ve kullanışlı arayüzü ile tüm veritabanı işlemlerinizi rahatlıkla yapabilirsiniz.
SQLite Browser programını indirmek için tıklayınız.
4. Özet
Tüm işlemleri kısaca özetlersek sırasıyla şu işlemleri yapmalısınız.
sqlite3
modülünü projenize dahil edinMevcut veya yeni veritabanınızı
connect()
fonksiyonu ile bağlayıncursor()
fonksiyonu ile imleç oluşturunSql komutlarınızı
execute()
fonksiyonu ile işletin.Veritabanınızda değişiklik olacaksa
commit()
edin.Veritabanı bağlantınızı
close()
ile sonlandırın.
Last updated