İçeriğe geç

Python 3 MySQL Veritabanı İşlemleri

Python 3 ile MySQL veritabanı kurulumunu önceki yazımızda bahsetmiştik. Bu yazımızda ise PyMySQL kullanarak basit veritabanı işlemleri yapacağız. Örnek amaçlı sorgular oluşturacağımız için basit bir veritabanı oluşturup bunun üzerinde işlemler gerçekleştireceğim.

  • Veritabanı adımız: python3
  • Kullanıcı adı: root
  • Kullanıcı şifresi: 123456
  • Socket Yolu: /var/run/mysqld/mysqld.sock
  • Host: 127.0.0.1

python3 isimli veritabanında kullanici ve yazi olmak üzere 2 adet tablo mevcut.

İlk bağlantımızı oluşturalım:

MySQL bağlantısı sırasında eğer ki herhangi bir hata oluşursa programımız çıkış yapacaktır. Burada “SET NAMES UTF8″ gibi bir sorgu mevcut. Bu sorgu veritabanında UTF8 karakterlerin kullanımına izin veriyor. charset ise insert veya update ederken Türkçe karakter problemi yaşamamak için kullanıyoruz. autocommit ise her update, insert’den sonra verilerin otomatik olarak database’e yazılmasını sağlar. Eğer bu işi manuel yapmak isterseniz ki tavsiye etmiyorum bunun için her update ve insert’den sonra;

yapmanız gerekecektir.

Veritabanına Sorgu Gönderme, Eklenen Satırın ID’sini Alma

 

sorgu isimli değişkene basit bir sorgu atadık, daha sonra baglanti isimli veritabanı sınıfıyla execute ettik. Autocommit True olduğu için ekleme işlemi otomatik olarak gerçekleşti. Eklenen kayıta ait satır numarasını ise yine baglanti veritabanı sınıfının lastrowid değişkeninden aldık.

 

Sorgunun İlk Satırını ve Tüm Satırlarını Çekme

Veritabanından çekilen veriler satır satır işlenir bu nedenle çektiğimiz verileri ekrana basarken bir döngü içerisinde yada metotlar kullanarak listeleyebiliriz. Sorgu sonucunda dönen tüm satırları görmek için fetchall metodunu, ilk satırı almak için ise fetchone metodunu kullanabiliriz.

Ekran Çıktısı:

Burada dikkat edilmesi gereken nokta, fetchone metodu ile ilk satır çekildikten sonra bu veriler veritabanı sınıfından siliniyor. Daha sonra fetchall kullandığımızda ilk satırın gözükmemesinin sebebi buydu. Aynı sorguyu fetchone’dan sonra gönderdiğimizde ise;

Çıktısı;

Şeklinde olacaktır.

Peki ya sadece belirli miktarda bir veri çekmek istersek? Bunun için ise fetchmany metodunu kullanabiliriz. Fetchmany metodu dönen sorgudan verilen sayı kadar satır çeker. Yani dönen sorguda 50 satır veri varsa bunun ilk 5’ini fetchmany(5) şeklinde çekebiliriz.

Çıktısı;

iki adet liste döndü beklediğimiz gibi.

 

Kategori:Yazılım Teknolojileri