SQLite med Pythons sqlite3-modul
Oprettelse af databaser og tabeller, INSERT/SELECT/UPDATE, parametriserede forespørgsler og forbindelsesstyring.
SQLite med Pythons sqlite3-modul er en gratis Lær AI med Python-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Lær AI med Python, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Lær AI med Python-kurset indeholder 4 lektioner i alt.
Hvorfor databaser til AI?
Flade filer fungerer, indtil dine data vokser, eller mange dele af et projekt har brug for de samme poster. En database giver dig hurtige forespørgsler, strukturerede skemaer og sikker samtidig adgang.
SQLite er en filbaseret database uden opsætning, som er indbygget i Python via modulet sqlite3 — perfekt til AI-eksperimenter og små projekter.
Forbindelse med sqlite3.connect
sqlite3.connect åbner eller opretter en databasefil og returnerer en forbindelse. Brug :memory: til en midlertidig database i RAM.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Markører og cursor.execute
Du kører SQL via en markør, som du henter fra forbindelsen. cursor.execute(sql) sender en SQL-sætning til databasen.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Definér en tabel med et skema. IF NOT EXISTS gør sætningen sikker at køre gentagne gange — den giver ikke en fejl, hvis tabellen allerede findes.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT med pladsholdere
Byg aldrig SQL med strengformatering — det inviterer til SQL-injektion og giver problemer med anførselstegn. Brug pladsholdere med ?, og send værdierne som en tupel.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Indsættelse af mange rækker med executemany
executemany indsætter en liste med tupler i ét effektivt kald — meget hurtigere end at gentage execute i en løkke.
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() gemmer ændringer
Skrivehandlinger foregår i en transaktion og gemmes ikke permanent, før du kalder conn.commit(). Det er den mest almindelige begynderfejl at glemme dette — dine data forsvinder lydløst, når forbindelsen lukkes.
conn.commit() # persist all pending INSERT/UPDATE/DELETEForespørgsler med fetchall og fetchone
Hent resultater efter en SELECT:
fetchone()— den næste enkelte rækkefetchall()— alle resterende rækker som en liste af tupler- Gennemgå markøren direkte ved store resultater
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtrering og sortering
SQL klarer det tunge arbejde: Filtrér med WHERE, sortér med ORDER BY, og begræns med LIMIT. Brug også pladsholdere til forespørgselsværdier.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Rækkefabrik til adgang via navn
Som standard er rækker tupler. Indstil conn.row_factory = sqlite3.Row for at få adgang til kolonner via navn, hvilket er langt mere læsbart.
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"])Kontekststyring for sikkerhed
Hvis du bruger with på forbindelsen, gemmes ændringer automatisk ved succes, og der rulles tilbage ved en fejl. Sammen med closing sikrer det oprydning.
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),
)Hurtigt tjek: Gemme ændringer
Du kørte flere INSERT-sætninger og lukkede derefter forbindelsen — men dataene var væk næste gang.
Opsummering: SQLite med sqlite3
Du kan nu bruge en rigtig database fra Python:
sqlite3.connectog encursorCREATE TABLE IF NOT EXISTStil sikre skemaerINSERTmed pladsholdere med?ogexecutemanyconn.commit()til at gemme skrivehandlinger permanentfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowog kontekststyring til ren og sikker kode
Næste trin er at forbinde pandas og SQL.
Lær Python med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 53
- Lektioner
- 225
Ofte stillede spørgsmål
Er lektionen “SQLite med Pythons sqlite3-modul” gratis?
Ja — alle 3 lektioner i læringssporet Lær AI med Python, inklusive “SQLite med Pythons sqlite3-modul”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Lær AI med Python-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “SQLite med Pythons sqlite3-modul”?
Oprettelse af databaser og tabeller, INSERT/SELECT/UPDATE, parametriserede forespørgsler og forbindelsesstyring. Du øver dig i Lær AI med Python med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Lær AI med Python?
Der kræves ingen tidligere erfaring. Lær AI med Python på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “SQLite med Pythons sqlite3-modul”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Lær AI med Python-lektion?
Ja. Alle Lær AI med Python-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- SQLite med Pythons sqlite3-modul
- Integration mellem Pandas og SQL
- Lagring og forespørgsel af ML-resultater
- Introduktion til vektordatabaser