Merhaba,
Aşağıdaki örneği inceleyebilirsiniz.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sqlite3 as sql
connect = sql.connect("test.db")
cursor = connect.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS veriler(no)")
def sutun_ekle(sutun):
"""Sütun ekler."""
cursor.execute("ALTER TABLE veriler ADD COLUMN {}".format(sutun))
connect.commit()
def sutun_sil(korunacak_sutunlar):
"""korunacak_sutunlar demetine alınmayan sütun, otomatik
olarak silinir."""
cursor.execute(
"CREATE TABLE IF NOT EXISTS yedek({})"
.format(", ".join(korunacak_sutunlar)))
for i in cursor.execute(
"SELECT {} FROM veriler"
.format(", ".join(korunacak_sutunlar))):
cursor.execute(
"INSERT INTO yedek VALUES({})"
.format(", ".join("?" * len(korunacak_sutunlar))), i)
cursor.execute("DROP TABLE veriler")
cursor.execute("ALTER TABLE yedek RENAME TO veriler")
connect.commit()
def veri_ekle(*args):
"""Bu fonksiyonu kullanabilmek için önce sutun_ekle()
fonksiyonu çağrılarak sutunlar oluşturulmalıdır.
Sonra da ekle() fonksiyonu çağrılarak,
veriler sütunlara yerleştirilir."""
no = 1
for _ in cursor.execute("SELECT * FROM veriler"):
no += 1
veri = tuple()
veri += no,
for i in args:
veri += i,
cursor.execute(
"INSERT INTO veriler VALUES({})"
.format(", ".join("?" * len(veri))), veri)
connect.commit()
def veri_degistir(no, sec, yeni):
"""Veri numarasına ve seçilen sütun ismine göre
verileri değiştirir."""
cursor.execute(
"UPDATE veriler SET {} = ? WHERE no = ?".format(sec), (yeni, no))
connect.commit()
def veri_sil(no):
"""Veri satırını, satır numarasına göre siler."""
cursor.execute("DELETE FROM veriler WHERE no = ?", (no,))
connect.commit()
if __name__ == "__main__":
# Önce veritabanında yeni sütunlar oluşturulur.
sutun_ekle(sutun="isim")
sutun_ekle(sutun="soyisim")
# Sonra bu sütunlara yeni veriler girilir.
veri_ekle("Ali", "Çınar")
veri_ekle("Ali", "Kaplan")
# Numarası '1' olan satırın, 'soyisim' isimli sütunundaki veri değiştirilir.
veri_degistir(no=1, sec="soyisim", yeni="Oğuz")
# Şimdi bu veri satırını silelim.
veri_sil(no=1)
# 'telefon' isminde bir sütun eklenir.
sutun_ekle(sutun="telefon")
# Numarası '1' olan satır silindiği için, numarası '2' olan
# satırın, 'no' isimli sütunundaki değer, '1' olarak değiştirilir.
veri_degistir(no=2, sec="no", yeni=1)
# 1 numaralı yeni satırın, 'telefon' isimli sütunundaki veriyi güncelleyelim.
veri_degistir(no=1, sec="telefon", yeni="0150")
# Şimdi 'soyisim' sütununu silelim.
sutun_sil(korunacak_sutunlar=("no", "isim", "telefon"))
connect.close()