# Python MySQL Veritabanı
Python MySQL veritabanı işlemlerini öğreniyoruz.
MySQL, programlamada en yaygın kullanılan ve en popüler ilişkisel veritabanı yazılımıdır. Sektörün önde gelen firmalarının neredeyse tamamına yakını MySQL ile beraber çalışır vaziyetteler. Hem bu sebeple hem de sunduğu güçlü çözümlerle bizde bu dersimizde MYSQL ve Python ilişkisini anlatacağız.
1. MySQL Avantajları
Açık kaynak kodludur ve ücretsizdir. (Ücretli versiyonu da mevcuttur)
Farklı karakter setlerini (iso8859-9, utf-8, latin-5 …) destekler
Çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahiptir
Güvenlik açısından kendini kanıtlamıştır
Döküman ve eğitim konusunda geniş kaynağa sahiptir
Birçok programlama dili ve platformla birlikte kullanılabilir.
2. Veritabanı İşlemleri
MySQL veritabanı yazılımını Python ile birlikte nasıl kullanacağımızı aşama aşama görelim.
2.1 Kütüphanenin Kurulması ve Projeye Dahil Etme
MySQL ile veritabanı işlemlerimizi rahatça yapabilmemiz için PyMySql kütüphanemizi projemize dahil etmemiz gerekiyor.
Eğer kütüphane bilgisayarınızda kurulu değilse pip kullanarak bilgisayarınıza yükleyebilirsiniz.
2.2 MySQL Veritabanı Bağlantısı
Artık veritabanımıza bağlantımızı yapacak bilgileri oluşturmanın zamanı geldi. Bunun için aşağıdaki kod blokunu ekleyerek kullanıcı adı, şifre ve veritabanı adını kendinize göre düzenlemelisiniz:
2.3 İmleç Oluşturma
Veritabanına bağlandıktan sonra üzerinde işlem yapabilmek için cursor()
fonksiyonu ile imleç oluşturmamız gerekiyor.
Eğer bilgiler doğruysa python dosyanızı çalıştırdığınızda bir hata almamanız gerekiyor. Boş bir çıktı görüyorsanız ilk iki aşamayı başarıyla geçtiniz demektir:
2.4 ~SELECT~ ile Tablodaki Verileri Seçmek
En çok kullanılan komut olan SELECT
ile başlayalım. Bunun için ilk önce veritabanımızda örnek bir tablo oluşturalım. Örnek olarak kullanicilar isimli tabloyu oluşturmak ve basit olması için sadece id
, ad
, yas
sütunlarını kullanmak istiyorum. İlk başta örnek olarak 2-3 tane veride ekleyebilirsiniz:
Tablomuz ve örnek verilerimiz hazırsa sorgu kodumuzu hemen gönderelim:
Bu isteğin ardından dönen sonuçları (dizi olarak döner) bir değişkene aktarmamız gerekiyor. Bunun içinde aşağıdaki gibi bir eşitleme yapıyoruz:
Artık tablomuzdaki kullanıcılarımızı bir değişkene atadık ve sıra ekrana yazdırmaya geldi. Bunun için foreach döngümüzü kullanarak dönen diziyi ekrana yazdırıyoruz:
Ekran çıktımız şu şekilde olacaktır:
Eğer dönen sonuçları daha detaylı kullanmak istiyorsanız sütun isimlerini kullanarak ekrana yazdırabilirsiniz. Bunun için:
Ekran çıktımız şu şekilde olacaktır:
Özet olarak execute fonksiyonu ile hangi komutu gönderirseniz dönen sonuçlar komutun çıktısı olacaktır. Sizlerde istediğiniz komutları yukarıdaki örnekteki gibi gönderebilirsiniz.
2.5 ~INSERT~ ile Yeni Veri Ekleme İşlemi
Tablomuza yeni bir kullanıcı eklemek istediğimizde kullanmamız gereken kod INSERT
komut yapısı aşağıdaki gibidir:
Sonucumuza bakarsak:
Yukarıdaki kodda %s
ile göndereceğimiz değerleri belli ediyoruz. Tablomuzda id,ad ve yas sütunları olduğu için %s
ile belirlediğim değişkenleri bir sonraki parametrede yazarak gönderiyoruz. Yani insert işleminin kabaca syntax yapısı şu şekildedir:
imlec.execute = (SQL Komutu,Değişkenler)
Bu fonksiyon çalıştığında etkilenen girdi sayısını da sonuc değişkenimize aktarıyoruz. Bu sonuc değişkeni ile tabloya veri eklenip eklenmediğini kontrol edebilirsiniz. Eğer sonuç 0 ise tabloya eklenememiştir.
En önemli kısmına gelirsek te db.commit()
ile yaptığımız değişiklikleri veritabanına ileterek insert işlemini gerçekleştiriyoruz. Eğer commit()
işlemini yapmazsanız insert işlemleriniz gerçekleşmez!
Unutmadan söyleyelim ki None değerini tablodaki id sütunumu auto increment ayarladığım için boş gönderiyorum, böylece veri eklediğimde id değeri otomatik olarak 1 artıyor.
2.6 ~UPDATE~ ile Veri Güncelleme İşlemi
Şimdi geldik tablomuzdaki mevcut bir değeri güncellemeye. Bu işlem için UPDATE
komutunu kullanacağız. Aşağıdaki örneği hemen incelemeye başlayabilirsiniz
Bu işlemin sonucunda ekran çıktılarımız şu şekilde olacaktır:
Gördüğünüz gibi klasik Update komutumuzu gönderdik ve işin kritik noktası olan commit()
ile işlemlerimizi başarıyla tamamladık. Artık sıradaki işlemimize geçebiliriz.
Tablomuzdaki kayıt başarıyla silinmiş.
2.7 ~DELETE~ ile Veri Silme
Tablomuz üzerindeki bir veriyi silmek için DELETE
sql komutunu kullanmalıyız. Örnek olarak aynı tablo üzerinde yer alan Yunus kullanıcısını silelim.
2.8 Veritabanı Bağlantısını Kapatmak
Veritabanı üzerindeki işlerinizi tamamladığınızda veritabanı bağlantısını sonlandırmak için close()
fonksiyonunu kullanmalısınız.
3. Özet
Tüm işlemleri kısaca özetlersek sırasıyla şu işlemleri yapmalısınız.
pymysql.cursors
modülünü projenize dahil edinVeritabanınızı
connect()
fonksiyonu ile bağlayıncursor()
fonksiyonu ile imleç oluşturunSql komutlarınızı
execute()
fonksiyonu ile işletin.Veritabanınızda değişiklik olacaksa
commit()
edin.Veritabanı bağlantınızı
close()
ile sonlandırın.
Last updated