SQLite met Python's sqlite3-module
Databases en tabellen maken, INSERT/SELECT/UPDATE gebruiken, geparametriseerde query's schrijven en verbindingen beheren.
SQLite met Python's sqlite3-module is een gratis Leer AI met Python-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Leer AI met Python. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Leer AI met Python bevat in totaal 4 lessen.
Waarom databases voor AI?
Platte bestanden werken totdat je gegevens groeien of veel onderdelen van een project dezelfde records nodig hebben. Een database biedt snelle zoekopdrachten, gestructureerde schema's en veilige gelijktijdige toegang.
SQLite is een database op basis van bestanden waarvoor geen configuratie nodig is en die via de module sqlite3 in Python is ingebouwd — perfect voor AI-experimenten en kleine projecten.
Verbinden met sqlite3.connect
sqlite3.connect opent of maakt een databasebestand en retourneert een verbinding. Gebruik :memory: voor een tijdelijke database in het werkgeheugen.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Cursors en cursor.execute
Je voert SQL uit via een cursor die je uit de verbinding haalt. cursor.execute(sql) stuurt een instructie naar de database.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Definieer een tabel met een schema. IF NOT EXISTS zorgt ervoor dat je de instructie veilig herhaaldelijk kunt uitvoeren — er ontstaat geen fout als de tabel al bestaat.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT met plaatsaanduidingen
Bouw SQL nooit met tekenreeksopmaak — dat nodigt uit tot SQL-injectie en werkt niet goed met aanhalingstekens. Gebruik ?-plaatsaanduidingen en geef waarden door als een tupel.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Veel rijen invoegen met executemany
executemany voegt een lijst met tupels in één efficiënte aanroep in — veel sneller dan een lus met execute.
rows = [
("rf", 0.88, "2026-05-29"),
("xgb", 0.91, "2026-05-29"),
]
cur.executemany(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
rows,
)conn.commit() slaat wijzigingen op
Schrijfbewerkingen vinden plaats binnen een transactie en worden pas bewaard nadat je conn.commit() aanroept. Dit vergeten is de meest voorkomende fout bij beginners — je gegevens verdwijnen stilletjes wanneer je de verbinding sluit.
conn.commit() # persist all pending INSERT/UPDATE/DELETEZoeken met fetchall en fetchone
Haal de resultaten na een SELECT op:
fetchone()— de volgende afzonderlijke rijfetchall()— alle resterende rijen als een lijst met tupels- loop bij grote resultaten rechtstreeks over de cursor
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filteren en sorteren
SQL doet het meeste werk: filter met WHERE, sorteer met ORDER BY en beperk met LIMIT. Gebruik ook voor waarden in zoekopdrachten plaatsaanduidingen.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Rijfabriek voor toegang op naam
Standaard zijn rijen tupels. Stel conn.row_factory = sqlite3.Row in om kolommen op naam te benaderen; dat is veel beter leesbaar.
import sqlite3
conn = sqlite3.connect("ml.db")
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM experiments")
row = cur.fetchone()
print(row["name"], row["accuracy"])Contextbeheerders voor veiligheid
Als je with voor de verbinding gebruikt, worden wijzigingen bij succes automatisch vastgelegd en wordt bij een fout teruggedraaid. In combinatie met closing zorgt dit gegarandeerd voor het opruimen van bronnen.
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("ml.db")) as conn:
with conn: # auto commit/rollback
conn.execute(
"INSERT INTO experiments (name, accuracy) VALUES (?, ?)",
("svm", 0.79),
)Korte controle: schrijfbewerkingen bewaren
Je hebt verschillende INSERT-instructies uitgevoerd en daarna de verbinding gesloten — maar de gegevens waren de volgende keer verdwenen.
Terugblik: SQLite met sqlite3
Je kunt nu vanuit Python een echte database gebruiken:
sqlite3.connecten eencursorCREATE TABLE IF NOT EXISTSvoor veilige schema'sINSERTmet?-plaatsaanduidingen enexecutemanyconn.commit()om schrijfbewerkingen te bewarenfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowen contextbeheerders voor overzichtelijke, veilige code
Volgende onderwerp: pandas en SQL met elkaar verbinden.
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 53
- Lessen
- 225
Veelgestelde vragen
Is de les “SQLite met Python's sqlite3-module” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Leer AI met Python, waaronder “SQLite met Python's sqlite3-module”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Leer AI met Python bevat in totaal 4 lessen.
Wat leer ik in “SQLite met Python's sqlite3-module”?
Databases en tabellen maken, INSERT/SELECT/UPDATE gebruiken, geparametriseerde query's schrijven en verbindingen beheren. Je oefent met Leer AI met Python door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Leer AI met Python te beginnen?
Ervaring vooraf is niet nodig. Leer AI met Python op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “SQLite met Python's sqlite3-module”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Leer AI met Python?
Ja. Elke les over Leer AI met Python bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- SQLite met Python's sqlite3-module
- Pandas- en SQL-integratie
- ML-resultaten opslaan en opvragen
- Inleiding tot vectordatabases