Site Loader

Merhaba Arkadaşlar,

Bugün Python ve SQLite birlikte güzel bir uygulama yapacağız. Peki bu uygulama nasıl olacak? Hemen anlatayım bu uygulama ile veritabanına yeni kayıt ekleme, kayıtları güncelleme, kayıtları gösterme, kayıt arama, kayıt silme, ve son olarak veritabanı içindeki kayıtları dosyaya yazdırma işlemi yapacağız. Eminim bu uygulama sonunda Python ile veritabanı işlemlerini iyi bir şekilde pekiştirmiş olacaksınız keyifli okumalar.

İlk önce seçenekleri ekrana yazdıralım:

print("""
1.) Yeni Kayit
2.) Kayit Guncelle
3.) Tum Kayitlari Goster
4.) Kayit Ara
5.) Kayit Sil
6.) Kayit Yazdir
0.) Cikis """)

Şimdi SQLite son vesiyonu SQLite3 projemize dahil edelim.

import sqlite3

Görüldüğü gibi çok basit çünkü SQLite veritabanı Python ile birlikte geliyor.

Şimdi bir tane veritabanı oluşturalım.

okul = sqlite3.connect('okul.db')

Okul isminde bir veritabanı oluşturmuş olduk. Uzantının .db olmasına dikkat edelim. Şimdi işlemleri yapalım ama bunun öncesinde ilk önce işlemleri yapmamızı sağlayan sihirli değneğimiz olan cursor() fonksiyonu alalım. bu fonksiyon ile veritabanı üzerinde istediğimiz işlemleri yapabileceğiz.

imlec = okul.cursor()

Tamam şimdi gerekli işlemleri yapalım ilk önce bir tablo oluşturalım ki kayıtlarımızı veritabana ekleyebilelim.

imlec.execute('CREATE TABLE IF NOT EXISTS ogrenci (Ogr_adi TEXT,Ogr_Soyadi TEXT,Ogr_no INTEGER)')

Veritabana 3 tana sütun ekledik. Veritabanı ve tablomuz hazır o zaman artık verileri yani kayıtları ekleyebiriz.

Birden fazla işlem yapacağımız için tekrarlı olarak işlemleri while döngüsü içinde yapıyoruz. Eğer kişi birinci seçeneği seçerse yeni kayıt ekleyecek. hemen yapalım.

if select==1: 
    Ogr_adi = input('Ogrenci ismi girin :')
    Ogr_soyadi = input('Ogrenci soyadi girin :')
    Ogr_no = int(input('Ogrenci no girin :'))
    imlec.execute('INSERT INTO ogrenci(Ogr_adi,Ogr_soyadi,Ogr_no) VALUES(?,?,?)',(Ogr_adi,Ogr_soyadi,Ogr_no))
    okul.commit()

İlk önce klavyeden kayıtları alıyoruz. insert into ile tabloya ekliyoruz. commit ile tabloye eklediğimiz keyıtları kaydediyoruz.

elif select==2: 
    imlec.execute('UPDATE ogrenci SET Ogr_adi = "Mehmet" WHERE Ogr_no = 12') 
    okul.commit() 

Ben burada sabit olarak aldım ama siz klavyeden alarak yapabilirsiniz.

elif select==3: 
    imlec.execute('SELECT *FROM ogrenci') 
    ogrenciler =  imlec.fetchall()
    for ogrenci in ogrenciler:
        print(ogrenci)

Tablodaki tüm kayıtları ögrenciler adlı değişkene atadım. for ile kayıtları alt alta yazdırdım.

elif select==4: 
    Ogr_no = int(input('Aradiginiz kullanici numarasini girin :')) 
    imlec.execute('SELECT *FROM ogrenci WHERE Ogr_no ={}'.format(Ogr_no))
    kisi = imlec.fetchall() 
    print(kisi)

Burada klavyeden aldığım öğrenci numarasına göre arama yapıyorum ve tabloda kayıt varsa ekrana yazdırma işlemi yapıyorum.

elif select==5: 
    Ogr_no = int(input('Aradiginiz kullanici numarasini girin :')) 
    imlec.execute('DELETE FROM ogrenci WHERE Ogr_no={}'.format(Ogr_no)) 
    okul.commit()

Burada klavyeden girdiğim öğrenci numarasına göre kayıtları siliyorum.

elif select==6: 
    imlec.execute('SELECT *FROM ogrenci') 
    ogrenciler = imlec.fetchall() 

    with open('Ogrenciler.txt','w') as file: 
        for ogr in ogrenciler: 
           file.writelines(str(ogr)+'\n') 

elif select==0: 
    exit()

Veritabanı içindeki tüm kayıtları .txt dosyasına yazdırdık.

Şimdi tüm kodları görelim.

print(""" 
1.) Yeni Kayit 
2.) Kayit Guncelle 
3.) Tum Kayitlari Goster 
4.) Kayit Ara 
5.) Kayit Sil 
6.) Kayit Yazdir 
0.) Cikis """)

import sqlite3
okul = sqlite3.connect('okul.db')
imlec = okul.cursor()

while True: 
    select = int(input('Bir secenek girin cikmak icin 0 basin :')) 
    if select==1: Ogr_adi = input('Ogrenci ismi girin :') 
        Ogr_soyadi = input('Ogrenci soyadi girin :') 
        Ogr_no = int(input('Ogrenci no girin :')) 
        imlec.execute('INSERT INTO ogrenci(Ogr_adi,Ogr_soyadi,Ogr_no) VALUES(?,?,?)',(Ogr_adi,Ogr_soyadi,Ogr_no))
        okul.commit()

    elif select==2: 
        imlec.execute('UPDATE ogrenci SET Ogr_adi = "Mehmet" WHERE Ogr_no = 12')
        okul.commit()

    elif select==3: 
       imlec.execute('SELECT *FROM ogrenci') 
       ogrenciler = imlec.fetchall() 

      for ogrenci in ogrenciler: 
          print(ogrenci) 

    
    elif select==4: 
        Ogr_no = int(input('Aradiginiz kullanici numarasini girin :')) 
        imlec.execute('SELECT *FROM ogrenci WHERE Ogr_no ={}'.format(Ogr_no)) 
        kisi = imlec.fetchall() 
        print(kisi) 

    elif select==5: 
        Ogr_no = int(input('Aradiginiz kullanici numarasini girin :')) 
        imlec.execute('DELETE FROM ogrenci WHERE Ogr_no={}'.format(Ogr_no)) 
        okul.commit()

 
    elif select==6: 
        imlec.execute('SELECT *FROM ogrenci') 
        ogrenciler = imlec.fetchall()

        with open('Ogrenciler.txt','w') as file: 
            for ogr in ogrenciler: 
                file.writelines(str(ogr)+'\n') 

    elif select==0: 
        exit()

Evet arkadaşlar bir uygulamanın daha sonuna geldik. Eksik veya yanlış gördüğünüz yerler için lütfen iletişime geçin. Başka uygulamalar da görüşmek üzere.

 

Post Author: Cahit ISLEYEN

Data Scientist at @embedica.ai

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir