Python’da Veri Tabanı İşlemleri #2
Bu yazıda bir önceki yazımızda oluşturmuş olduğumuz MusteriTablosu isimli tablo üzerinde Python ile örnek uygulamalar yapacağız. Burada kullanacağım veri tabanı ile ilgili daha fazla bilgi için buraya tıklayarak bir önceki yazıya gidebilirsiniz.
Uygulama 1: Müşteri tablosunda taksit sayısı 6’dan küçük olanları listeleyelim.
INPUT:
musteriler = sqlite3.connect("musteriler.sqlite")
imlec = musteriler.cursor()
secilenler = imlec.execute("Select * From MusteriTablosu WHERE MusteriTaksitsayisi < 6")
print(secilenler.fetchall())
OUTPUT:
[(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440)]
Burada veri tabanına olan erişimimizi kapatmıyorum. Çünkü yazı boyunca aynı bağlantı kodunu tekrar tekrar yazmayalım.
Uygulama 2: Müşteri tablosunda geliri 3000 TL’den fazla ve yaşı 30’dan küçük olan müşterileri listeleyelim.
INPUT:
secilenler1 = imlec.execute("Select * From MusteriTablosu WHERE MusteriGeliri > 3000 AND MusteriYas < 30")
secilenler1.fetchall()
OUTPUT:
[(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440),
(518023, 'Gizem', 'Duyar', 23, 'K', 3500, 2750, 12, 229.17)]
Uygulama 3: Müşteri tablosunda cinsiyeti kadın olanları listeleyelim.
INPUT:
secilenler2 = imlec.execute("Select * From MusteriTablosu WHERE MusteriCinsiyet = 'K'")
secilenler2.fetchall()
OUTPUT:
[(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440),
(518023, 'Gizem', 'Duyar', 23, 'K', 3500, 2750, 12, 229.17),
(812503, 'Aslı', 'Çevik', 26, 'K', 3000, 1650, 6, 550),
(356721, 'Betül', 'Çevreci', 26, 'K', 2800, 1400, 6, 233.34)]
Uygulama 4: Müşteri tablosunda aylık ödemesi 600 TL’den düşük olan müşterilerin borcunu, gelirini, adını ve soyadını listeleyelim.
INPUT:
secilenler3 = imlec.execute("Select MusteriAd, MusteriSoyad, MusteriGeliri, MusteriToplamBorc From MusteriTablosu WHERE MusteriAylikOdeme < 600")
secilenler3.fetchall()
OUTPUT:
[('Ece', 'Gündüz', 3655, 1760),
('Gizem', 'Duyar', 3500, 2750),
('Aslı', 'Çevik', 3000, 1650),
('Betül', 'Çevreci', 2800, 1400)]
Uygulama 5: Insert komutunu kullanarak aşağıda verilen verileri veri tabanına ekleyelim.
(625173, “Salih”, “Güven”, 30, “E”, 2200.00, 1250.00, 6, 208.34)
(153294, “Melike”, “Özdemir”, 26, “K”, 4350.00, 4250.00, 12, 283.34)
(309852, “Berk”, “İnan”, 56, “E”, 3800.00, 2760.00, 12, 230.00)
Bu verileri liste olarak yazıp, bir önceki yazıda oluşturduğumuz fonksiyon içerisine yazalım.
INPUT:
yeniVeriler = [[625173, "Salih", "Güven", 30, "E", 2200.00, 1250.00, 6, 208.34], [153294, "Melike", "Özdemir", 26, "K", 4350.00, 4250.00, 12, 283.34], [309852, "Berk", "İnan", 56, "E", 3800.00, 2760.00, 12, 230.00]]
VeriGirisi(yeniVeriler)
musteriler.commit()
secilenler4 = imlec.execute("Select * From MusteriTablosu ")
secilenler4.fetchall()
OUTPUT:
[(136752, 'Ahmet', 'Yenidoğan', 36, 'E', 4500, 3800, 6, 633.34),
(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440),
(201638, 'Ali', 'Çelik', 46, 'E', 6500, 8900, 12, 741.67),
(518023, 'Gizem', 'Duyar', 23, 'K', 3500, 2750, 12, 229.17),
(812503, 'Aslı', 'Çevik', 26, 'K', 3000, 1650, 6, 550),
(437612, 'Mehmet', 'Bekçi', 35, 'E', 6500, 4800, 6, 800),
(356721, 'Betül', 'Çevreci', 26, 'K', 2800, 1400, 6, 233.34),
(971025, 'Cenk', 'Kahraman', 33, 'E', 4250, 9800, 12, 816.67),
(625173, 'Salih', 'Güven', 30, 'E', 2200, 1250, 6, 208.34),
(153294, 'Melike', 'Özdemir', 26, 'K', 4350, 4250, 12, 283.34),
(309852, 'Berk', 'İnan', 56, 'E', 3800, 2760, 12, 230)]
Uygulama 6: Update komutunu kullanarak Melike Özdemir kişisinin borcunu 12800.00 TL ve taksit sayısını 8 olarak güncelleyelim. Buna bağlı olan sütunları da güncelleyelim.
INPUT:
imlec.execute("UPDATE MusteriTablosu SET MusteriToplamBorc = 12800.00, MusteriTaksitSayisi = 8, MusteriAylikOdeme = 1600.00 WHERE MusteriAd = 'Melike' AND MusteriSoyad = 'Özdemir'")
musteriler.commit()
Secilenler5 = imlec.execute("Select * From MusteriTablosu WHERE MusterID = 153294")
Secilenler5.fetchall()
OUTPUT:
[(153294, 'Melike', 'Özdemir', 26, 'K', 4350, 12800, 8, 1600)]
Uygulama 7: MusteriID’si 625173 olan Salih Güven kişisini tablodan silelim.
INPUT:
imlec.execute("DELETE FROM MusteriTablosu WHERE MusterID = 625173")
musteriler.commit()
Secilenler6 = imlec.execute("Select * From MusteriTablosu")
Secilenler6.fetchall()
OUTPUT:
[(136752, 'Ahmet', 'Yenidoğan', 36, 'E', 4500, 3800, 6, 633.34),
(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440),
(201638, 'Ali', 'Çelik', 46, 'E', 6500, 8900, 12, 741.67),
(518023, 'Gizem', 'Duyar', 23, 'K', 3500, 2750, 12, 229.17),
(812503, 'Aslı', 'Çevik', 26, 'K', 3000, 1650, 6, 550),
(437612, 'Mehmet', 'Bekçi', 35, 'E', 6500, 4800, 6, 800),
(356721, 'Betül', 'Çevreci', 26, 'K', 2800, 1400, 6, 233.34),
(971025, 'Cenk', 'Kahraman', 33, 'E', 4250, 9800, 12, 816.67),
(153294, 'Melike', 'Özdemir', 26, 'K', 4350, 12800, 8, 1600),
(309852, 'Berk', 'İnan', 56, 'E', 3800, 2760, 12, 230)]
Uygulama 8: Müşteri tablosunda isminde A harfi olan kişileri listeleyelim.
INPUT:
Secilenler7 = imlec.execute("Select * From MusteriTablosu WHERE MusteriAd Like '%A%'")
Secilenler7.fetchall()
OUTPUT:
[(136752, 'Ahmet', 'Yenidoğan', 36, 'E', 4500, 3800, 6, 633.34),
(201638, 'Ali', 'Çelik', 46, 'E', 6500, 8900, 12, 741.67),
(812503, 'Aslı', 'Çevik', 26, 'K', 3000, 1650, 6, 550)]
Uygulama 9: Müşteri tablosunda soyadı Ç harfi ile başlayan kişileri listeleyelim.
INPUT:
Secilenler8 = imlec.execute("Select * From MusteriTablosu WHERE MusteriSoyad Like 'Ç%'")
Secilenler8.fetchall()
OUTPUT:
[(201638, 'Ali', 'Çelik', 46, 'E', 6500, 8900, 12, 741.67),
(812503, 'Aslı', 'Çevik', 26, 'K', 3000, 1650, 6, 550),
(356721, 'Betül', 'Çevreci', 26, 'K', 2800, 1400, 6, 233.34)]
Uygulama 10: Müşteri tablosunda ismi E harfi ile biten kişileri listeleyelim.
INPUT:
e("Select * From MusteriTablosu WHERE MusteriAd Like '%E'")
Secilenler9.fetchall()
OUTPUT:
[(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440),
(153294, 'Melike', 'Özdemir', 26, 'K', 4350, 12800, 8, 1600)]
Uygulama 11: Müşteri tablosunda geliri 3000 TL ya da 4500 TL olan kişilerin ad, soyad, maaş ve yaşını listeleyelim.
INPUT:
Secilenler10 = imlec.execute("Select MusteriAd, MusteriSoyad, MusteriGeliri, MusteriYas From MusteriTablosu WHERE MusteriGeliri IN(3000,4500)")
Secilenler10.fetchall()
OUTPUT:
[('Ahmet', 'Yenidoğan', 4500, 36), ('Aslı', 'Çevik', 3000, 26)]
Uygulama 12: Müşteri Tablosunda adında A harfi olmayan ve geliri 3500 TL, 4000 TL ya da 4800 TL olan kişilerin ad ve soyadlarını listeleyen sorguyu yazalım.
INPUT:
Secilenler11 = imlec.execute("Select MusteriAd, MusteriSoyad From MusteriTablosu WHERE MusteriAd NOT LIKE '%A%' AND MusteriGeliri IN(3500,4000,4800)")
Secilenler11.fetchall()
OUTPUT:
[('Gizem', 'Duyar')]
Uygulama 13: Müşteriler veri tabanına CihazTablosu isminde bir tablo oluşturalım. Bu tablonun içerisinde CihazID, CihazModel, CihazYıl ve CihazAd sütunlarını ekleyelim.
INPUT:
imlec.execute('''CREATE TABLE IF NOT EXISTS CihazTablosu(
CihazID INT NOT NULL,
CihazModel Varchar(5),
CihazYıl SMALLINT,
CihazAd Varchar(30))''')
Uygulama 14: Yeni oluşturduğumuz CihazTablosu isimli tabloya aşağıdaki verileri ekleyelim.
(“TBT16”, 2016, “Tablet”), (“BGR20”, 2020, “Bilgisayar”), (“TLN18”, 2018, “Telefon”), (“BZD19”, 2019, “Buzdolabı”), (“CMR21”, 2021, “Çamaşır Makinesi”), (“TVN21”, 2021, “Televizyon”)
INPUT:
cihazlar = [[1635,"TBT16", 2016, "Tablet"], [1654,"BGR20", 2020, "Bilgisayar"], [5643,"TLN18", 2018, "Telefon"], [4567,"BZD19", 2019, "Buzdolabı"], [1564,"CMR21", 2021, "Çamaşır Makinesi"], [4569,"TVN21", 2021, "Televizyon"]]
for cihaz in cihazlar:
imlec.execute("INSERT INTO CihazTablosu VALUES (?,?,?,?)", cihaz)
musteriler.commit()
secilenler12 = imlec.execute("SELECT * FROM CihazTablosu")
secilenler12.fetchall()
OUTPUT:
[(1635, 'TBT16', 2016, 'Tablet'),
(1654, 'BGR20', 2020, 'Bilgisayar'),
(5643, 'TLN18', 2018, 'Telefon'),
(4567, 'BZD19', 2019, 'Buzdolabı'),
(4569, 'TVN21', 2021, 'Televizyon'),
(1564, 'CMR21', 2021, 'Çamaşır Makinesi')]
Uygulama 15: Müşteri tablosuna SahipOlunanCihaz isimli ve veri türü INT olan bir sütun ekleyelim.
INPUT:
imlec.execute("ALTER TABLE MusteriTablosu ADD COLUMN SahipOlunanCihaz INT")
musteriler.commit()
Uygulama 16: Müşteri tablosuna yeni eklenen sütuna (1,3,5,6,2,4,3,5,1,6) değerlerini ekleyelim.
INPUT:
CihazNumaralari = [1,3,5,6,2,4,3,5,1,6]
MusteriNumaralari = [136752, 127650, 201638, 518023, 812503, 437612, 356721, 971025, 153294, 309852]
a = 0
for musteri in MusteriNumaralari:
imlec.execute("UPDATE MusteriTablosu SET SahipOlunanCihaz = {} WHERE MusterID = {}" .format(CihazNumaralari[a], musteri))
a += 1
musteriler.commit()
secilenler13 = imlec.execute("SELECT * FROM MusteriTablosu")
secilenler13.fetchall()
OUTPUT:
[(136752, 'Ahmet', 'Yenidoğan', 36, 'E', 4500, 3800, 6, 633.34, 1),
(127650, 'Ece', 'Gündüz', 28, 'K', 3655, 1760, 4, 440, 3),
(201638, 'Ali', 'Çelik', 46, 'E', 6500, 8900, 12, 741.67, 5),
(518023, 'Gizem', 'Duyar', 23, 'K', 3500, 2750, 12, 229.17, 6),
(812503, 'Aslı', 'Çevik', 26, 'K', 3000, 1650, 6, 550, 2),
(437612, 'Mehmet', 'Bekçi', 35, 'E', 6500, 4800, 6, 800, 4),
(356721, 'Betül', 'Çevreci', 26, 'K', 2800, 1400, 6, 233.34, 3),
(971025, 'Cenk', 'Kahraman', 33, 'E', 4250, 9800, 12, 816.67, 5),
(153294, 'Melike', 'Özdemir', 26, 'K', 4350, 12800, 8, 1600, 1),
(309852, 'Berk', 'İnan', 56, 'E', 3800, 2760, 12, 230, 6)]
Bir sonraki yazımızda Python’dan bahsetmeye devam edeceğiz.