Merhabalar değerli arkadaşlar. Eğitimimde veritabanı işlemlerine ve dolayısıyla SQLite gömülü veritabanına geldim. Kendimi denemek için hazırladığım küçük çaplı programda eğer ismi ve soyadı daha evvel kayıtlı olan personelin veritabanına eklenmemesi için kontrol oluşturmak istiyorum. Ancak bir türlü başaramadım. Nerede hata yaptığım konusunda yardımcı olursanız memnun olurum.
import sqlite3
db = sqlite3.connect('C:\\Users\\ali.kasimoglu\\PycharmProjects\\denemeler\\deneme.sqlite')
cursor = db.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS personel_listesi (
id_no INT, isim TEXT, soyisim TEXT, unvan TEXT, maas INT)''')
def personel_ekle():
isim = input("Personelin Adı: ")
soyisim = input("Personelin Soyadi: ")
unvan = input("Personelin Ünvanı: ")
maas = int(input("Maaş Tutarı: "))
cursor.execute('''SELECT * FROM personel_listesi''')
veri_sec = cursor.fetchall()
id_no = 100000 + int(len(veri_sec)) + 1
veriler = id_no, isim, soyisim, unvan, maas
for veri in veri_sec:
if isim != veri[1] and soyisim != veri[2]:
cursor.execute('''INSERT INTO personel_listesi (id_no, isim, soyisim, unvan, maas) VALUES (?, ?, ?, ?, ?)''', veriler)
elif isim == veri[1] and soyisim == veri[2]:
print("Bu isimde kayıtlı personel mevcut!")
db.commit()
def personelleri_goster():
print("Sisteme Kayıtlı Personellerin Listesi:")
cursor.execute('''SELECT * FROM personel_listesi''')
veri_sec = cursor.fetchall()
sayi = 1
for i in veri_sec:
print(f'{sayi}. ID: {i[0]}, {i[1]}, {i[2]}, {i[3]}, {i[4]}')
sayi += 1
while True:
print("""
Personel Veritabanı Programına Hoşgeldiniz. Lütfen bir işlem seçiniz:
Personel eklemek için (1)
Personel silmek için (2)
Personel listesini göstermek için (3)
Programdan çıkmak için (4)
""")
try:
secim = int(input("Yapmak İstediğiniz İşlemi Seçiniz: "))
if secim == 1:
personel_ekle()
elif secim == 3:
personelleri_goster()
else:
db.close()
break
except ValueError:
print("Lütfen sadece rakam kullanınız!")
Kontrol kodunu koymadan sadece cursor.execute(’’‘INSERT INTO personel_listesi (id_no, isim, soyisim, unvan, maas) VALUES (?, ?, ?, ?, ?)’’’, veriler) kodunu kullanınca çalışıyor ama doğal olarak kontrol olmamış oluyor. SQLite veritabanı ile alakalı bir şeyleri anlamadım sanırım.