import mysql.connector
çalıştırıldığında hata alınmıyorsa sürücü doğru kurulmuş demektir.
Programlama II (BIL203U) soru-cevapları.
Linux ortamında python ile bağlanacak mysql sürücüsünün doğru biçimde kurulup kurulmadığını nasıl kontrol edebilirsiniz?
import mysql.connector
çalıştırıldığında hata alınmıyorsa sürücü doğru kurulmuş demektir.
Python kullanılarak MySQL veri tabanına bağlanmak için hangi komuta ihtiyaç duyulur?
mysql.connector modülündeki connect() metoduna ihtiyaç duyulmaktadır
Eğer bilgisayarınızda SQL veritabanı yüklüse aşağıdaki kod bloğu çalıştırıldığında ne olur?
import mysql.connector
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi"
)
cursor = veritabani.cursor()
cursor.execute("CREATE DATABASE odev")
Bilgisayarınızda (Localhost) kullanıcı_adı ve kurulum_sifresi ile SQL veritabanında odev adlı bir veritabanı yaratılacaktır.
Aşağıda verilen şekildeki verileri girebileceğimiz bir MySQL hastane tablosunu yaratmak için gereken kod nedir?
Not: Sadece tablo oluşturma bölümü yeterli olacaktır.
tablo = """CREATE TABLE hastane(
Hastane_ID INT AUTO_INCREMENT PRIMARY KEY,
Hastane_Adi VARCHAR(30),
Yatak_Sayısu VARCHAR(30),
Şehir VARCHAR(50),
)"""
# tablo oluşturuldu
cursor.execute(tablo)
Aşağıda verilen python kodu ile bir veritabanı tablosu yaratmak istiyoruz. Ancak çok önemli bir hata yapıyoruz. Hatayı bulabilir misiniz?
Not : Noktalama veya sentaks hatası yoktur.
import mysql.connector
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi",
)
cursor = veritabani.cursor()
personelTablosu = """CREATE TABLE personel(
ad VARCHAR(30) NOT NULL,
soyad VARCHAR(30),
dogum_tarihi DATETIME,
)"""
cursor.execute(personelTablosu)
veritabani.close()
import mysql.connector
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi",
)
kodu içerisinde hangi veritabanında bu tablonun yaratılacağı belirtilmemiştir. Doğrusu :
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi",
database="personel"
)
olacaktır.
MySQL veri tabanında bir tablonun var olup olmadığını nasıl kontrol edersiniz?
SHOW TABLES komutunu kullanarak MySQL'de bir tablo olup olmadığını kontrol edebilirsiniz.
Bir tabloda PRIMARY KEY ne işe yarar? Bunun otomatik arttırılması için hangi söz dizini kullanılmalıdır?
PRIMARY KEY tabloya eklenen her verinin sadece o veriye ait benzersiz bir anahtar olmasını sağlar. Bunun her yeni eklenecek veriye bağlı otomatik arttırılması için:
AUTO_INCREMENT PRIMARY KEY
söz dizini kullanılır.
MySQL içerisinde var olan "personel" tablosuna yeni bir sütun ilave etmek için gereken python kodu nedir?
ALTER TABLE gerekmektedir.
Bir örnekle bu kod şu şekilde yazılabilir:
cursor.execute("ALTER TABLE personel ADD COLUMN id INT AUTO_INCREMENT PRIMARY KEY")
Daha Önce yaratılmış bir veri tabanındaki personel tablosuna Ad = Ali, Soyad = Veli = Birim= Başkanlık değerlerini nasıl eklersiniz?
Burada Ad, Soyad ve Tarih sütun verileri olup Ali, Veli, Başkanlık ise değerlerdir. Sadece söz dizimini vermeniz yeterli olacaktır.
INSERT INTO personel (Ad, Soyad, Tarih) VALUES ("Ali", "Veli", "Başkanlık");
Aşağıdaki kodda bir veritabanı tablosuna veri girilmek istenmiştir. Bu veri girişinin veri tabanına kaydedilebilmesi için program parçasının sonuna hangi komutu kullanmak gerekir?
import mysql.connector
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi",
database="personel"
)
# cursor nesnesi oluşturma
cursor = veritabani.cursor()
sql = "INSERT INTO calisan(ad, soyad, birim) VALUES (%s, %s, %s)"
val = ("Ali", "Veli", "başkanlık")
cursor.execute(sql, val)
veritabani.commit()
metodunu yazmak lazım
Aşağıda verilen şekilde veritabanı cursor oluşturulduğunda
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi",
database="personel"
)
# cursor nesnesi oluşturma
cursor = veritabani.cursor()
cursor.execute(sql, val) ile cursor.executemany(sql, val)
arasındaki fark nedir?
Eğer tabloya çoklu veri girişi yapılmak istenirse execute metodu yerine executemany metodu kullanamk gerekir.
Bir MySQL veritabanı bağlantısında SELECT komutu ne işe yarar?
Daha önce tabloya girilmiş bir veriyi okumak için kullanılır.
Bir MySQL veri tabanında personel tablosu aşağıdaki kod bloğundaki gibi yaratılmış olsun
CREATE TABLE personel( ad VARCHAR(128), soyad VARCHAR(128), bolum VARCHAR(16), yil CHAR(4))
Bu tablo içerisinde adı Abdullah olan bir kaydı/kayıtları aramak için arama komutunun ne olması gerekir?
cursor.execute("SELECT ad, soyad, bölüm, yıl FROM personel WHERE ad = 'Abdullah'")
Aşağıdaki kod satırı MySQL veri tabanında çalıştırıldığında çıktıda ne olması beklenmektedir?
import mysql.connector
veritabani = mysql.connector.connect(
host="localhost",
user="kullanıcı_adı",
password="kurulum_şifresi",
database="isletme"
)
# cursor nesnesi oluşturma
cursor = veritabani.cursor()
sql = "SELECT id, ad, soyad FROM personel WHERE soyad= 'Akalın'"
cursor.execute( sql )
sonucListe = cursor.fetchall()
for eleman in sonucListe:
print( eleman )
Bu program parçası, isletme veritabanındaki personel tablosuna kayıtlı tüm soyadı Akalın olan verileri listelemek için kullanılır.
MySQL veri tabanında bir tabloyu silmek için hangi söz dizini kullanılır?
Drop Table
MySQL veritabanında LIMIT komutunun görevi nedir?
LIMIT komutu, çalıştırılan sorgudan dönen sonuç kümesindeki verilerin sayısını kontrol etmek veya sınırlandırmak için kullanılmaktadır.
SQL JOIN komutu nedir ve ne zaman ihtiyacınız olur?
SQL JOIN komutu, SQL'de iki tablodaki verileri birleştirmek için kullanılır. JOIN yan tümcesi, tablolarda ortak en az bir veri sütunu olduğunda sıklıkla kullanılır.
Aşağıdaki şekilde görüldüğü üzere Tablo 1 ve Tablo 2 üzerinde bir işlem yapılıp Tablo 3 üretilmiştir.
Burada Hangi MySQL işlemi yapılmıştır?
LEFT JOIN işlemi yapılmıştır.
Aşağıdaki şekilde görüldüğü üzere Tablo 1 ve Tablo 2 üzerinde bir işlem yapılıp Tablo 3 üretilmiştir.
Burada Hangi MySQL işlemi yapılmıştır?
INNER JOIN işlemi yapılmıştır. ID ortak kullanılmıştır.
Aşağıdaki şekilde görüldüğü üzere Tablo 1 ve Tablo 2 üzerinde RIGHT JOIN işlemi yapıldığında oluşacak tablo nasıl olur?