Çok ayrıntıya girmeden hatırlatıcı nitelikte temel işlemler için birkaç örnek.
SQLite veritabanını kullanabilmek için sqlite3 kütüphanesini import etmeniz gerekmektedir.
import sqlite3
Bazı kodlarda sorgularda 3 tırnak mevcut başında ve sonunda. Bunun nedeni yazılan sorguyu alta aldığımda hata vermemesi için. Ayrıca sorgulardan sonra bağlantıyı kapatmanız gerekmektedir.
SQLite Yeni Veri Ekleme
Aşağıdaki kod values kısmında yazılı olan verileri customers tablosuna ekler. Parantez içindeki kısımlar ile values kısmında olan veriler birbirine karşılık gelmektedir.
def insertCustomer(): connection = sqlite3.connect("chinook.db") connection.execute("""insert into customers (firstName,lastName,city,email) values('Mehmet','Yüce','Kocaeli','admin@info4idea.com')""") connection.commit() connection.close() insertCustomer()
SQLite Veri Güncelleme
Customer tablosunda city(şehir) alanı ‘Eskişehir’ olan verileri ‘İstanbul’ olarak güncelleme sorgusu. Eğer where kısmını kaldırırsanız tüm city kolonunu ‘Eskişehir’ e çevirir.
def updateCustomer(): connection = sqlite3.connect("chinook.db") connection.execute("""update customers set city='istanbul' where city='eskişehir'""") connection.commit() connection.close() updateCustomer()
SQLite Veri Silme
CustomerId alanı 60 olan veriyi siler. Eğer where alanını kaldırırsanız tablo içerisindeki tüm veriyi silersiniz.
def deleteCustomer(): connection = sqlite3.connect("chinook.db") connection.execute("""delete from customers where customerid=60""") connection.commit() connection.close() deleteCustomer()
SQLite Veri Listeleme 1
Aşağıdaki kod city (şehir) alanında ‘Prague’ veya ‘Berlin’ olan verileri getirir ve ilk önce isme ismi aynı olan varsa soy isime göre sıralayıp listeler.
def selectOperations(): connection = sqlite3.connect("chinook.db") 3 tırnak koyup alta alınabiliyor cursor = connection.execute("""select * from customers where city='Prague' or city='Berlin' order by FirstName,LastName""") for row in cursor: print("First Name : "+row[1]) connection.close() selectOperations()
SQLite Veri Listeleme 2
Aşağıdaki kod şehirler adlarını ve o şehre ait kaç kayıt olduğunu geri çevirmektedir. Bu kod ayrıca Group By ve Having kullanımına da bir örnektir. Group by ile gruplama having ile de gruplarken 2. bir where görevi üstlenmektedir. Aşağıdaki örnekte city kolonuna göre grupla ama city 1 den fazla ise anlamı taşımaktadır.
def selectOperations(): connection = sqlite3.connect("chinook.db") cursor = connection.execute("""select city,count(*) from customers group by city having count(*)>1 order by count(*)""") for row in cursor: print("Şehir : "+row[0] +" -- "+str(row[1])) connection.close() selectOperations()
SQLite Veri Listeleme 3
Like kullanımına bir örnek. Örneğin metinsel bir ifade içerisinde aradığımız metinler şunu içeriyorsa getir şeklinde sorgularda like kullanılır. Aşağıdaki kodda FirstName alanında e ile başlayan kayıtları getir şeklinde bir sorgu yazılmıştır.
def selectOperations(): connection = sqlite3.connect("chinook.db") cursor = connection.execute("""select * from customers where FirstName like 'e%' """) for row in cursor: print("First Name : "+row[1]) connection.close() selectOperations()
İtaratör Örnek
# -*- coding: utf-8 -*- sehirler = ["ankara","istanbul","izmir"] iteratorum = iter(sehirler) print(next(iteratorum)) print(next(iteratorum)) print(next(iteratorum))
Merhaba veriyi eklerken
connection.execute(“””insert into customers (firstName,lastName,city,email)
values(‘Mehmet’,’Yüce’,’Kocaeli’,’admin@info4idea.com’)”””)
yapmıssınız. Ben verilerimi string olarak girmek istemiyorum, programımdaki değişkenlerimin değerleri gelsin istiyorum. Örneğin:
connection.execute(“””insert into customers (firstName,lastName,city,email)
values(name, surname, city , email)”””)
ama bu sorgu da hata almaktayım. Nasıl yapabilirim?
bunu yapmak için ya tırnakları düzenlemelisin. Yani string ifadenin arasına değişken nasıl koyuyorsan tırnakları o şekilde düzenleyerek değişkenleri arasına ekleyebilirsin veya connection.execute(‘insert into tablename values (?,?,?)’, items) şeklinde yapabilirsin. items’ı liste şeklinde verebilirsin