# Python MySQL Veritabanı
Python MySQL veritabanı işlemlerini öğreniyoruz.
Last updated
Python MySQL veritabanı işlemlerini öğreniyoruz.
Last updated
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.
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.
MySQL veritabanı yazılımını Python ile birlikte nasıl kullanacağımızı aşama aşama görelim.
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.
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:
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:
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.
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.
Ş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ş.
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.
Veritabanı üzerindeki işlerinizi tamamladığınızda veritabanı bağlantısını sonlandırmak için close()
fonksiyonunu kullanmalısınız.
Tüm işlemleri kısaca özetlersek sırasıyla şu işlemleri yapmalısınız.
pymysql.cursors
modülünü projenize dahil edin
Veritabanınızı connect()
fonksiyonu ile bağlayın
cursor()
fonksiyonu ile imleç oluşturun
Sql 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.