Tekil Mesaj gösterimi
Alt 26 Aralık 2021, 21:25   #1
ExCaLuBuR
ExCaLuBuR - ait Kullanıcı Resmi (Avatar)

Standart Python ile Veritabanı İşlemleri - MySQL)

MySQL, bugün piyasadaki en popüler veritabanı yönetim sistemlerinden (DBMS’ler) biridir. Bu yılki DB-Motor Sıralamasında yalnızca Oracle DBMS’den sonra ikinci sırada yer aldı. Çoğu yazılım uygulamasının verilerle bir şekilde etkileşime girmesi gerektiğinden, Python gibi programlama dilleri bu veri kaynaklarını depolamak ve bunlara erişmek için araçlar sağlar.



Bu makalede bir MySQL veritabanını bir Python uygulamasıyla verimli bir şekilde entegre edebileceksiniz. Uygulamada kütüphane adında bir veritabanında kayıtlı olan öğrenci tablosu üzerinde SEÇ, EKLE, GÜNCELLE ve SİL işlemlerini yapan kodları göreceksiniz.

MySQL Kurulum

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...], MySQL sunucusunu indirmenin ve kurmanın önerilen yolunu açıklar. Windows, macOS, Solaris, Linux ve çok daha fazlası dahil olmak üzere tüm popüler işletim sistemleri için talimatlar bulacaksınız.

Windows için en iyi yol [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]‘ı indirmek ve tüm süreci kendisinin halletmesine izin vermektir. Kurulum yöneticisi ayrıca MySQL sunucusunun güvenlik ayarlarını yapılandırmanıza yardımcı olur.

MySQL Connector Kurulum

Birçok popüler programlama dilinin kendi veritabanı API’si vardır. Örneğin, Java, Java Veritabanı Bağlantısı (JDBC) API’sine sahiptir. Bir Java uygulamasını bir MySQL veritabanına bağlamanız gerekiyorsa, JDBC API’sini takip eden MySQL JDBC bağlayıcısını kullanmanız gerekir.

Benzer şekilde, Python’da bir MySQL veritabanıyla etkileşim kurmak için bir Python MySQL bağlayıcısı yüklemeniz gerekir. Birçok paket DB-API standartlarını takip eder, ancak aralarında en popüler olanı MySQL Connector/Python’dur. pip ile alabilirsiniz:

PHP- Kodu

pip install mysql-connector-python 

pip, bağlayıcıyı o anda etkin olan sanal ortamda üçüncü taraf bir modül olarak kurar. Tüm bağımlılıklarla birlikte proje için yalıtılmış bir sanal ortam kurmanız önerilir.

Kurulumun başarılı olup olmadığını test etmek için Python terminalinize aşağıdaki komutu yazın:

PHP- Kodu

>>> import mysql.connector 

Yukarıdaki kod hatasız çalışıyorsa, mysql.connector kurulur ve kullanıma hazırdır. Herhangi bir hatayla karşılaşırsanız, doğru sanal ortamda olduğunuzdan ve doğru Python yorumlayıcısını kullandığınızdan emin olun.

Tamamen Python uygulaması olan doğru mysql-connector-python paketini kurduğunuzdan emin olun. mysql-connector gibi benzer şekilde adlandırılmış ancak artık amortismana tabi tutulmuş bağlayıcılara dikkat edin.

Bağlantı Kurma

MySQL sunucusuyla etkileşim kurmanın ilk adımı bir bağlantı kurmaktır. Bunu yapmak için mysql.connector modülünden connect()’e ihtiyacınız var. Bu işlev, ana bilgisayar, kullanıcı ve parola gibi parametreleri alır ve bir MySQLConnection nesnesi döndürür. Bu kimlik bilgilerini kullanıcıdan girdi olarak alabilir ve connect() öğesine iletebilirsiniz:

PHP- Kodu

import mysql.connector
 
mysqldb 
mysql.connector.connect(
    
host="localhost",
    
user="root",
    
password="",
    
database="kutuphane"

Ardından uygulamada kullanılacak değişkenler ve mysql cursor oluşturulur.

PHP- Kodu

cursor mysqldb.cursor()
devam 'E' 

Programın ana bölümü

Veritabanı işlemleri için kullanıcıyı yönlendireceğimiz kodları yazıyoruz. Aşağıdaki fonksiyonlar ilerleyen satırlarda doldurulmak üzere pass parametresini almaktadır.

PHP- Kodu

#fonksiyonlar
def ara():
    
pass
        
def ekle
():
    
pass
 
def listele
():
    
pass
    
def sil
():
    
pass
 
def guncelle
():
    
pass
 
 
 
#ana program
while devam in ('E','e'):
    print(
"*************************")
    print(
"MySQL Veritabanı İşlemleri")
    print(
"(1) Tüm Kayıtları Listele")
    print(
"(2) Öğrenci Ekle")
    print(
"(3) Öğrenci Ara")
    print(
"(4) Öğrenci Güncelle")
    print(
"(5) Öğrenci Sil")
    
secim input("Seçim Yapınız :")
 
    if 
secim == "1":
        
listele()
    
elif secim =="2":
        
ekle()
    
elif secim =="3":
        
ara()
    
elif secim =="4":
        
guncelle() 
    
elif secim =="5":
        
sil() 
    
devam input("Devam etmek için (E/e) tuşuna basın :")
 
print(
"Programdan Çıktınız"

Yukarıdaki programda döngü E/e harflerine basıldığı sürece kullanıcıdan bilgiler isteyecektir.

Fonksiyonlar

Tüm kayıtları listele: ilk olarak tüm kayıtları listeleyen fonksiyonu yazalım.

PHP- Kodu

def listele():
    
cursor.execute("select * from ogrenci")
    
data cursor.fetchall()
    print(
"{:<4} {:<15} {:<15}".format("Nu","Ad","Soyad"))
    for 
satir  in data:
        print(
"{:<4} {:<15} {:<15}".format(satir[0],satir[1],satir[2])) 

Öğrenci Ekle: Öğrenci ekleme işlemini yapan fonksiyon kodları.

PHP- Kodu

 
def ekle
():
    
ad =input("İsim girin :")
    
soyad =input("Soyisim girin :")
    
cinsiyet =input("Cinsiyet (K/E) girin :")
    
dtarih =input("Doğum tarihi girin(YYYY/AA/GG) :")
    
sinif =input("Sınıf girin :")
    
    
sql "INSERT INTO ogrenci values(NULL,'{}','{}','{}','{}','{}',{})".format(ad,soyad,cinsiyet,dtarih,sinif,0)
    
cursor.execute(sql)
    
mysqldb.commit()   
    print(
"[+] Veri Eklendi"

Öğrenci Ara: OGRNO değerine göre öğrenci araması yapan fonksiyon kodları.

PHP- Kodu

def ara():
    
ogrno input"Öğrenci numarası girin :")
    
cursor.execute("select * from ogrenci where ogrno ="+ogrno)
    
data cursor.fetchone()
    if 
data != None :   
        print(
"Numara",data[0])
        print(
"Ad",data[1])
        print(
"Soyad",data[2])
        print(
"Doğum Tarih",data[4])
        print(
"Cinsiyet",data[3])
        print(
"Sınıf",data[5]) 

Öğrenci Güncelle: Öğrencileri ad, soyad ve sınıf bilgisine göre güncelleyen programın kodları.

PHP- Kodu

def guncelle():
    
ogrno input"Öğrenci numarası girin :")
    
cursor.execute("select * from ogrenci where ogrno ="+ogrno)
    
data cursor.fetchone()
    if 
data != None :   
        print(
"Numara",data[0])
        print(
"Ad",data[1])
        print(
"Soyad",data[2])
        print(
"Doğum Tarih",data[4])
        print(
"Cinsiyet",data[3])
        print(
"Sınıf",data[5])
 
    print(
"Sadece güncellenecek alanlara giriş yapın")
    
ad=input("İsim girin yada boş bırakın(ENTER)")
    
sad=input("Soyisim girin yada boş bırakın(ENTER)")
    
sinif=input("Sınıf girin yada boş bırakın(ENTER)")
 
    if 
not ad:
        
ad=data[1]
    if 
not sad:
        
sad=data[2]
    if 
not sinif:
        
sinif=data[5]
 
    
sql "UPDATE ogrenci SET ograd ='{}', ogrsoyad ='{}', sinif='{}' WHERE ogrno = {}".format(ad,sad,sinif,data[0])
    
cursor.execute(sql)
    
mysqldb.commit()   
    print(
"[+] Veri Güncellendi"

Öğrenci Sil: Öğrenci numarasına göre öğrencisi silen program kodları.

PHP- Kodu

def sil():
    
ogrno input"Öğrenci numarası girin :")
    
cursor.execute("DELETE FROM ogrenci WHERE ogrno="+ogrno)
    
mysqldb.commit()
    print(
"[+] Veri Silindi"

Tüm kodların bir arada yazımı:

PHP- Kodu

import mysql.connector
 
mysqldb 
mysql.connector.connect(
    
host="localhost",
    
user="root",
    
password="",
    
database="kutuphane"
)
cursor mysqldb.cursor()
devam 'E'
 
 
 
#fonksiyonlar
def ara():
    
ogrno input"Öğrenci numarası girin :")
    
cursor.execute("select * from ogrenci where ogrno ="+ogrno)
    
data cursor.fetchone()
    if 
data != None :   
        print(
"Numara",data[0])
        print(
"Ad",data[1])
        print(
"Soyad",data[2])
        print(
"Doğum Tarih",data[4])
        print(
"Cinsiyet",data[3])
        print(
"Sınıf",data[5])
        
def ekle():
    
ad =input("İsim girin :")
    
soyad =input("Soyisim girin :")
    
cinsiyet =input("Cinsiyet (K/E) girin :")
    
dtarih =input("Doğum tarihi girin(YYYY/AA/GG) :")
    
sinif =input("Sınıf girin :")
    
    
sql "INSERT INTO ogrenci values(NULL,'{}','{}','{}','{}','{}',{})".format(ad,soyad,cinsiyet,dtarih,sinif,0)
    
cursor.execute(sql)
    
mysqldb.commit()   
    print(
"[+] Veri Eklendi")
 
def listele():
    
cursor.execute("select * from ogrenci")
    
data cursor.fetchall()
    print(
"{:<4} {:<15} {:<15}".format("Nu","Ad","Soyad"))
    for 
satir  in data:
        print(
"{:<4} {:<15} {:<15}".format(satir[0],satir[1],satir[2]))
    
def sil():
    
ogrno input"Öğrenci numarası girin :")
    
cursor.execute("DELETE FROM ogrenci WHERE ogrno="+ogrno)
    
mysqldb.commit()
    print(
"[+] Veri Silindi")
 
def guncelle():
    
ogrno input"Öğrenci numarası girin :")
    
cursor.execute("select * from ogrenci where ogrno ="+ogrno)
    
data cursor.fetchone()
    if 
data != None :   
        print(
"Numara",data[0])
        print(
"Ad",data[1])
        print(
"Soyad",data[2])
        print(
"Doğum Tarih",data[4])
        print(
"Cinsiyet",data[3])
        print(
"Sınıf",data[5])
 
    print(
"Sadece güncellenecek alanlara giriş yapın")
    
ad=input("İsim girin yada boş bırakın(ENTER)")
    
sad=input("Soyisim girin yada boş bırakın(ENTER)")
    
sinif=input("Sınıf girin yada boş bırakın(ENTER)")
 
    if 
not ad:
        
ad=data[1]
    if 
not sad:
        
sad=data[2]
    if 
not sinif:
        
sinif=data[5]
 
    
sql "UPDATE ogrenci SET ograd ='{}', ogrsoyad ='{}', sinif='{}' WHERE ogrno = {}".format(ad,sad,sinif,data[0])
    
cursor.execute(sql)
    
mysqldb.commit()   
    print(
"[+] Veri Güncellendi")
 
 
 
#ana program
while devam in ('E','e'):
    print(
"*************************")
    print(
"MySQL Veritabanı İşlemleri")
    print(
"(1) Tüm Kayıtları Listele")
    print(
"(2) Öğrenci Ekle")
    print(
"(3) Öğrenci Ara")
    print(
"(4) Öğrenci Güncelle")
    print(
"(5) Öğrenci Sil")
    
secim input("Seçim Yapınız :")
 
    if 
secim == "1":
        
listele()
    
elif secim =="2":
        
ekle()
    
elif secim =="3":
        
ara()
    
elif secim =="4":
        
guncelle() 
    
elif secim =="5":
        
sil() 
    
devam input("Devam etmek için (E/e) tuşuna basın :")
 
print(
"Programdan Çıktınız"

Bu yazıda Python ile INSERT, UPDATE, DELETE ve SELECT işlemlerini nasıl gerçekleştireceğinizi gördünüz.

Kaynak : [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Konu ExCaLuBuR tarafından (11 Mart 2023 Saat 00:28 ) değiştirilmiştir..