Bu yazıda sizlere pyton 3 ile mysql veritabanı bağlantısı yapıp verileri nasıl okuyacağınızı göstereceğim. Öncelikle Python veritabanı bağlantısı için bilgisayarımıza PyMySQL modülünün yüklü olması gerekiyor. Aşağıdaki adımları izleyerek PyMySQL modülünü kurabilirsiniz.
PyMySQL Modülünü Kurma
Adım 1: Komut ekranını çalıştır. ( WIN+X > Çalıştır > cmd )
Adım 2:Pip dosyasının yolunu kopyalayın.
Adım 3: Komut ekranına aşağıdaki gibi komutları sırasıyla giriniz.
cd C:\Users\<Kullanıcı Adı>\AppData\Local\Programs\Python\Python36-32\Scripts
pip install PyMySQL
Python ile MySql Veritabanı Bağlanma
Aşağıdaki örneği yapmak için bu veritabanı dosyasını oluşturmanız gerekmektedir.
CREATE TABLE Users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL ); INSERT INTO `users` (`id`, `firstname`, `lastname`) VALUES (NULL, 'Andy', 'Poweren'), (NULL, 'Minna', 'Ree');
İlk olarak PyMySQL modülünü projeye dahil ediyoruz.
import pymysql.cursors
İkinci olarak mysql bağlantısı için gerekli bağlantı cümlesini yazıyoruz. Kullanıcı adı ve şifre bilgileri kendi bilgisayarınıza bağlı olarak değişiklik gösterir.
# Connect to the database connection = pymysql.connect(host='localhost', user='root', password='', db='dbname', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
Bu kod veritabanından tek kayıt okumak için yazılmıştır.
try: with connection.cursor() as cursor: # Read a single record sql = "SELECT `id`, `firstname`,`lastname` FROM `users` WHERE `id`=%s" cursor.execute(sql, ('2',)) result = cursor.fetchone() print(result) finally: connection.close()
Tüm verileri çekmek için fetchall() metodu ile tüm kayıtlar üzerinde dönerek okuma işlemini gerçekleştiriyoruz.
try: with connection.cursor() as cursor: # Read a single record sql = "SELECT `id`, `firstname`,`lastname` FROM `users`" cursor.execute(sql) for row in cursor.fetchall(): #data from rows firstname = str(row["firstname"]) lastname = str(row["lastname"]) #print it print("The first name is : " + firstname) print("The last name is : " + lastname) finally: connection.close()
Örneğin Tüm Kodları:
# Connect to the database connection = pymysql.connect(host='localhost', user='root', password='', db='dbname', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) try: with connection.cursor() as cursor: # Read a single record sql = "SELECT `id`, `firstname`,`lastname` FROM `users`" cursor.execute(sql) for row in cursor.fetchall(): #data from rows firstname = str(row["firstname"]) lastname = str(row["lastname"]) #print it print("The first name is : " + firstname) print("The last name is : " + lastname) finally: connection.close()
Merhaba..create table users satırında invalid syntax hatası veriyor.ayrıca users id ,firstname kelimelerindeki tırnaklar diğer tırnaklara göre farklı nedeni nedir?