Merhaba arkadaşlar başlıktada gördügünüz gibi "Pythonla SQLite veri tabanı yapımı" konusunu anlatacagım, siz istediginiz dilde bu konuya gire bilirsiniz ben python seçtim.
SQLite ne oldugunu bilmeyenlere kısa bir bilgi vereyim
SQLite nedir?
SQLite isminden de anlaşılacagı gibi kullanım bakımından diger veri tabanlarıyla aynı ama kurulumu daha basit bir veritabanı kütüphanesidir.
SQLite diger veritabanları gibi çalışma esnasında local bir sunucuya ihtiyaç duymaz
Tüm işletim sistemlerinde çalışır ve hemen hemen her dilde SQLite desteklenir ayrıca her veritabanı için tek dosya vardır tüm veritabanı işlemleri tek dosya üzerinden gerçekleşir buda kopyalama ve yedekleme olayını kolaylaştırır.
** SQLite Veritabanı Oluşturma Araçları**
- SQLite Studio
- SQLite Administator
- DB Browser For SQLite
- SQLite Exper
Bu araçlar üzerinde veritabanı oluştura bilir veya var olan bir veritabanını bunlar üzerinde çalıştıra bilirsiniz.
Genel olarak DB Browser For SQLite kullanımı diger araçlara göre daha fazladır. Bende Pythonla oluşturdugum veritabanını DB Browser For SQLite ile çalıştıracagım.
Aracı indirmek isteyenler için link bırakıcam işletim sisteminize göre indire bilirsiniz.
DB Browser For SQLite
Öncelikle Masaüstün de bir klasör oluşturup bunu Visual Studio Code ile açıyoruz daha sonra klasör içinde bir dosya açıyoruz, ismini ben sql.py olarak belirledim siz kafanıza göre takılın.
Açtıgımız dosyanın içine kodlarımızı giriyoruz
import sqlite3
conn = sqlite3.connect('veri.db')
cursor = conn.cursor()
Yukarıdaki kodlarımızı açıklayalım, Python'da Sqlite veri tabanı sistemine ait modül "sqlite3" adını taşır. Modülü içe aktarmak için import ettik daha sonra sqlite3 modülünün connect() metodunu kullanıp bu metodun içine oluşturacagınız veritabanı ismini yazdık ve daha sonra db içinde satır ve sutunlarda gezmek için "cursor" adında bir metotla imleç oluşturduk.
Tabi bu sabit disk üzerine kurdugumuz bir veritabanı dosyası isterseniz geçici bir veritabanı oluştura bilirsiniz kodu aşagıya bırakıyorum size kalmış ne yapacagınız.
conn = sqlite.connect(':memory:')
Oluşturdugunuz geçici veritabanı sabit disk üzerinde degil ram üzerinde çalışır "memory" benim kendimce tanımımda gecici hafızayı ram de barındır demek.
Buraya kadar kodumuzu çalıştıralım
"veri.db" adında başka bir dosya oluştugunu görüyoruz, bu oluşturdugumuz database dosyasıdır.
Şimdi oluşturdugumuz database içine tablo oluşturacagız
def CreateDB():
cursor.execute("CREATE TABLE IF NOT EXISTS tablo(idno,web,programming)")
conn.commit()
Burada CREATE TABLE IF NOT EXISTS ifadesi bir sql komutu olup, bu komut şartlı bir tablo oluşturulmasını saglar.
Şartlı tablo ne demek diye düşündügünüzün farkındayım onuda açıklayayım , arkadaşlar yukarıdaki kodlarımızın komut satırında eger sadece CREATE TABLE kullansaydık kodumuzu ilk çalıştırmada bizim istedigimiz tabloyu bize oluşturacaktı ama ikinci kez çalıştırdıgımızda tekrar bir tablo oluşturacaktı, Buda datamızda iki adet aynı tabloya sebeb olup hata almamıza neden olacaktı. Bu hatayı almamak için CREATE TABLE IF NOT EXISTS sql komutunu kullandım.
Burada "tablo" adında bir tablo oluşturup içine stunlarını oluşturdum, siz stun isimlerini kafanıza göre tanımlaya bilirsiniz
Ben "idno, web, programming" gibi isimler kullandım.
Simdi geldik tablomuza data girişi yapmaya
def WriteToDB():
idno = input("Lütfen bir id girin :\n>>>>")
web = input("Lütfen bir web dili girin :\n>>>>")
programming = input("Lütfen bir programlama dili girin :\n>>>>")
sql = "INSERT INTO 'tablo'(idno,web,programming) VALUES(?,?,?)"
cursor.execute(sql,(idno,web,programming))
conn.commit()
CreateDB()
WriteToDB()
conn.close()
Yukarıdaki data girişlerini kullanıcıdan input alarak istedik, benimki baya kafadan sallamasyon oldu, siz fiziksel bir sistem üzerine kuracaksanız daha düzenli çalışmanız gerekeçek zaten önemli olan burada yaptıgım işin mantıgını kavraya bilmeniz.
Şimdi geldi son işlemlere oluşturdugmuz tabloya data girişini kullanıcıdan input alarak yaptık içerik eklemek için INSERT INTO . . . . . . VALUES kullandık ve VALUES içine (?,?,?) soru işaretleri koyduk kullanıcıdan input aldıgımız için bu şekilde yaptık eger kullanıcıdan input almamış olsaydık VALUES içine kafanıza göre deger gire bilirdiniz. Ben input alma işlemini sevdigim için böyle yaptım siz hangi kullanımı seversiniz bilemem.
Burada tüm işlemleri bitirdikten sonra veritabanını kapatmak için conn.close() adında bir metot kullandık. Şimdi tüm kodlarımızı çalıştırıp kafamıza göre degerler girelim
Gördügünüz gibi arkadaşlar bu şekilde verilerimizin kaydedildigini görüyoruz, şimdi tekrar kafadan sallayarak değerler girelim daha sonra "veri.db" adındaki dosyamızı açıp kontrol edelim.
Evet verilerimiz kayıt edilmiş şimdi geldi tablomuzu DB Browser For SQLite ile açmaya
DB Browser For SQLite ile açtıgımızda "Veritabanı Aç " butonuna tıklayıp Masaüstüne kayıt ettigim veritabanımın bulundugu klasörün içindeki veri.db dosyasını açtık karşımıza veritabanımız ve tablomuz çıktı.
Şimdi "Browse Data" 'ya tıklayıp tablomuzun içine girdigimiz degerlerimizi kontrol edelim.
Girdigimiz degerlerimiz gördügünüz gibi karşımızda. Bugünlükte bu kadar umarım faydası olur.
Sağlıcakla Kalın.