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.
1 2 3 |
cd C:\Users\<Kullanıcı Adı>\AppData\Local\Programs\Python\Python36-32\Scripts |
1 2 3 |
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.
1 2 3 4 5 6 7 8 |
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.
1 2 3 |
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.
1 2 3 4 5 6 7 8 9 |
# 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.
1 2 3 4 5 6 7 8 9 10 11 |
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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ı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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?