phyton

Python Notlarım #8 – SQLite Kullanımı – İteratör

Ç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))

2 comments / Add your comment below

  1. 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?

    1. 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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir