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...]