Teoreetiline osa: SQLite Python’is
Mis on andmebaas?
- Andmebaas on organiseeritud andmete kogum, mis võimaldab andmeid turvaliselt salvestada, muuta ja pärida.
- Andmebaasid on mõeldud suure hulga struktureeritud andmete efektiivseks haldamiseks.
SQLite
- SQLite on kerge ja manustatav (embedded) relatsiooniline andmebaas.
- Ei vaja eraldi serverit, kogu andmebaas salvestatakse ühes failis.
- Sobib hästi väiksematele rakendustele ja arenduseks, aga ka paljudele seadmetele ja süsteemidele.
- On tasuta ja avatud lähtekoodiga.
SQLite ja Python
- Pythonis saab SQLite’ga töötamiseks kasutada sisseehitatud
sqlite3 moodulit.
- See moodul võimaldab luua ühendusi andmebaasiga, täita SQL-päringuid ja hallata andmeid.
- SQLite toetab standardseid SQL käsklusi.
Peamised tegevused sqlite3 mooduliga:
- Ühenduse loomine andmebaasiga
conn = sqlite3.connect('andmebaas.db')
- Kui andmebaasi fail puudub, siis see luuakse automaatselt.
- Kursori loomine
cursor = conn.cursor()
- Kursori kaudu täidetakse SQL-päringud.
- SQL-päringute täitmine
- Tabeli loomine:
cursor.execute("CREATE TABLE ...")
- Andmete lisamine:
cursor.execute("INSERT INTO ...")
- Andmete pärimine:
cursor.execute("SELECT ...")
- Andmete salvestamine
conn.commit() — muudatuste salvestamiseks andmebaasi.
- Ühenduse sulgemine
Näidis: töö SQLite andmebaasiga Pythonis
import sqlite3
# Ühenduse loomine andmebaasi failiga (näiteks 'andmebaas.db')
conn = sqlite3.connect('andmebaas.db')
# Kursori loomine
cursor = conn.cursor()
# Tabeli loomine (kui seda veel ei ole)
cursor.execute('''
CREATE TABLE IF NOT EXISTS kasutajad (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nimi TEXT NOT NULL,
vanus INTEGER
)
''')
# Andmete lisamine tabelisse
cursor.execute("INSERT INTO kasutajad (nimi, vanus) VALUES (?, ?)", ('Mari', 28))
cursor.execute("INSERT INTO kasutajad (nimi, vanus) VALUES (?, ?)", ('Jaan', 35))
# Muudatuste salvestamine
conn.commit()
# Andmete pärimine tabelist
cursor.execute("SELECT * FROM kasutajad")
andmed = cursor.fetchall()
# Andmete kuvamine
for rida in andmed:
print(rida)
# Ühenduse sulgemine
conn.close()