Merhabalar Veritabanı Silme İşlemi

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()
2 Beğeni