Python ile SQLite Veritabanına Veri Ekleme

SQLite Nedir ve Neden Kullanmalıyız?

SQLite, hafif ve gömülü bir veritabanı yönetim sistemidir. Genellikle web uygulamaları, masaüstü uygulamaları ve mobil uygulamalar gibi çeşitli projelerde yaygın olarak kullanılır. SQLite, diğer veritabanı yönetim sistemlerine göre daha basit bir yapı sunarak, geliştiricilere hızlı bir başlangıç imkânı tanır. Özellikle veri işleme ve depolama konusunda esneklik sağlar.

SQLite’ın bu kadar popüler olmasının sebeplerinden biri, kurulum gerektirmemesi ve bir sunucuya ihtiyaç duymamasıdır. Veriler, bir dosya içerisinde saklanır ve bu dosya uygulama ile birlikte taşınabilir. Böylece, bir veritabanı sunucusu kurmadan basit veri işlemleri yapmak mümkündür. Bu özellikleri ile SQLite, başlangıç düzeyindeki projelerden tutun, geniş ölçekli uygulamalara kadar pek çok alanda kullanılabilir.

Python programlama dili, SQLite ile uyumlu çalışarak veritabanı işlemlerini kolaylaştıran bir dizi kütüphane sunar. Python’un standard kütüphaneleri arasında yer alan ‘sqlite3’ modülü, geliştiricilerin SQLite veritabanlarına erişmesini ve veri eklemesini oldukça basit hale getirir.

Python ile SQLite Bağlantısı Kurmak

SQLite ile çalışmaya başlamadan önce, Python uygulamanızda SQLite kütüphanesini içeri aktarmanız gerekmektedir. ‘sqlite3’ modülü, SQLite veritabanları ile etkileşimde bulunmanıza olanak sağlar. Aşağıda, basit bir SQLite veritabanı bağlantısının nasıl kurulacağını görebilirsiniz:

import sqlite3

# Veritabanına bağlanma (Eğer yoksa yeni bir tane oluşturmaya çalışır)
db_connection = sqlite3.connect('veritabani.db')

Yukarıdaki kodda, `sqlite3.connect()` fonksiyonu ile ‘veritabani.db’ adında bir SQLite veritabanı dosyasına bağlantı kuruyoruz. Eğer bu isimde bir dosya yoksa, otomatik olarak bu isimde yeni bir dosya oluşturulacaktır. Veritabanı bağlantısı, uygulamamız boyunca devam edecek ve tüm veri işlemlerimiz bu bağlantı üzerinden gerçekleştirilecektir.

Bağlantıyı oluşturduktan sonra, bir ‘cursor’ (gözlemci) nesnesi oluşturarak SQL sorgularını çalıştırabiliriz. ‘cursor’ nesnesi ile, veritabanındaki verilere erişebilir ve değişiklik yapabiliriz:

cursor = db_connection.cursor()

Bu ‘cursor’ nesnesi, veritabanına sorgular gönderip yanıt almak için kullanılır. Şimdi, veritabanımızda bir tablo oluşturarak veri eklemeye geçebiliriz.

SQLite’da Tablo Oluşturma

SQLite veritabanımızda veri eklemek için öncelikle bir tablo oluşturmamız gerekiyor. Bir tablo oluşturmak için, SQL dilinde CREATE TABLE ifadesini kullanırız. Aşağıdaki örnekte, kullanıcı bilgilerini saklamak için bir ‘kullanici’ tablosu oluşturacağız:

cursor.execute('''CREATE TABLE IF NOT EXISTS kullanici (
	id INTEGER PRIMARY KEY AUTOINCREMENT,
	isim TEXT NOT NULL,
	email TEXT NOT NULL UNIQUE)''')

Bu kod parçasında, `cursor.execute()` metodu aracılığıyla SQL sorgusu çalıştırılıyor. `CREATE TABLE IF NOT EXISTS` ifadesi ile, tablonun daha önceden var olup olmadığını kontrol ediyoruz. Eğer yoksa, yeni bir tablo oluşturuluyor. Bu tabloda üç sütun bulunuyor: `id` otomatik artan bir tamsayı, `isim` metin, ve `email` metin. Email sütunu için ise benzersiz (unique) kısıtlaması koyuyoruz.

Tablonun oluşturulmasının ardından, veritabanına veri ekleme işlemine geçebiliriz.

Veritabanına Veri Ekleme

Artık tabloyu oluşturduğumuza göre, bu tabloya veri eklemek için INSERT INTO SQL ifadesini kullanabiliriz. Örnek olarak, ‘kullanici’ tablosuna bir kullanıcı ekleyeceğiz:

cursor.execute('INSERT INTO kullanici (isim, email) VALUES (?, ?)', ('Ege Korkmaz', '[email protected]'))

Yukarıdaki sorguda, `?` parametreleri yer tutucu olarak kullanılıyor ve bu sayede SQL enjeksiyon saldırılarına karşı bir koruma sağlanıyor. Kırmızıların dışında kalan iki değer, kullanıcının adı ve e-posta adresidir. Böylece, SQL sorgumuz daha güvenli ve dinamik hale gelmiş oluyor.

Birden fazla veri eklemek isterseniz, döngü kullanarak her bir kullanıcı için `INSERT` sorgusunu tekrarlayabilirsiniz:

kullanicilar = [('Ahmet Yılmaz', '[email protected]'), ('Mehmet Demir', '[email protected]')]

for kullanici in kullanicilar:
	cursor.execute('INSERT INTO kullanici (isim, email) VALUES (?, ?)', kullanici)

Bu örnekte, birden fazla kullanıcıyı bir liste içerisinde tanımlıyoruz ve döngü sayesinde ‘kullanici’ tablosuna ekliyoruz. Her bir kullanıcı için `execute` metodu ile sorgu çalıştırılıyor.

Veri Değişikliklerinin Kaydedilmesi

SQLite veritabanına veri ekledikten sonra, bu değişiklikleri kalıcı hale getirmek için `commit()` fonksiyonunu çağırmalısınız. Aksi halde, eklediğiniz veriler kaydedilmeyecek ve yapmış olduğunuz değişiklikler kaybolacaktır. Aşağıda veri ekledikten sonra değişikliklerin nasıl kaydedileceğine dair bir örnek bulabilirsiniz:

db_connection.commit()

Böylelikle, veritabanına yaptığınız değişiklikleri kalıcı hale getirmiş olursunuz. Ayrıca, yapılan işlemlerin ardından bağlantıyı kapatmak da iyi bir pratiktir:

cursor.close()
db_connection.close()

Bu kod, `cursor` nesnesini ve veritabanı bağlantısını kapatır, böylece kaynaklar serbest bırakılır ve sistem üzerindeki yük azaltılır.

Hatalarla Başa Çıkma

Veri eklerken veya SQLite ile çalışırken çeşitli hatalar ile karşılaşabilirsiniz. Bu hataları önlemek için `try` ve `except` yapılarını kullanmak faydalı olacaktır. Aşağıda basit bir hata yönetimi örneği bulabilirsiniz:

try:
	cursor.execute('INSERT INTO kullanici (isim, email) VALUES (?, ?)', ('Ege Korkmaz', '[email protected]'))
	db_connection.commit()
except sqlite3.Error as e:
	print(f'Hata oluştu: {e}')
finally:
	cursor.close()
db_connection.close()

Bu kodda, veri ekleme işlemi sırasında hata oluşursa, hata mesajını konsola print ediyoruz. `finally` bloğu, hata oluşsun ya da oluşmasın, kaynakları kapatmak için her durumda çalışır. Bu şekilde uygulamanız daha sağlam hale gelir.

Sonuç

Python ile SQLite veritabanına veri eklemek oldukça basit bir işlem olarak görünüyor. Doğru adımlar izlenerek, sorunsuz bir şekilde veritabanınıza veri ekleyebilir, güncelleyebilir ve yönetebilirsiniz. Bu makalede, SQLite ile bağlantı kurma, tablo oluşturma ve veri ekleme adımlarını detaylı bir şekilde ele aldık.

Geliştirdiğiniz uygulamalarda SQLite kullanarak veri saklama kabiliyetinize katkı sağlıyorsunuz. Özellikle küçük ve orta ölçekli projelerde etkin bir çözümdür. Öğrendiğiniz bu bilgilerle, kendi projelerinizde veri ekleme ve yönetimi konusunda daha fazla deneyim kazanabilirsiniz.

Unutmayın, her zaman güncel dokümanlara göz atarak ve yeni SQL ifadelerini denemeye devam ederek kendinizi geliştirin. Başarılar dilerim!

Scroll to Top