Leer AI met Python · Les

SQLite met Python's sqlite3-module

Databases en tabellen maken, INSERT/SELECT/UPDATE gebruiken, geparametriseerde query's schrijven en verbindingen beheren.

Les 1 van 413 stappen

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/DELETE

Zoeken met fetchall en fetchone

Haal de resultaten na een SELECT op:

  • fetchone() — de volgende afzonderlijke rij
  • fetchall() — 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.connect en een cursor
  • CREATE TABLE IF NOT EXISTS voor veilige schema's
  • INSERT met ?-plaatsaanduidingen en executemany
  • conn.commit() om schrijfbewerkingen te bewaren
  • fetchone/fetchall, WHERE/ORDER BY/LIMIT
  • sqlite3.Row en contextbeheerders voor overzichtelijke, veilige code

Volgende onderwerp: pandas en SQL met elkaar verbinden.

Gratis beginnen

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

  1. SQLite met Python's sqlite3-module
  2. Pandas- en SQL-integratie
  3. ML-resultaten opslaan en opvragen
  4. Inleiding tot vectordatabases
← Terug naar Leer AI met Python