SQLite med Pythons sqlite3-modul
Skapa databaser och tabeller, använda INSERT/SELECT/UPDATE, parametriserade frågor och hantera anslutningar.
SQLite med Pythons sqlite3-modul är en gratis lektion i Lär Er AI med Python på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Lär Er AI med Python, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Varför databaser för AI?
Platta filer fungerar tills datamängden växer eller flera delar av ett projekt behöver samma poster. En databas ger snabba frågor, strukturerade scheman och säker samtidig åtkomst.
SQLite är en filbaserad databas utan installationskonfiguration som ingår i Python via modulen sqlite3 — perfekt för AI-experiment och mindre projekt.
Anslut med sqlite3.connect
sqlite3.connect öppnar eller skapar en databasfil och returnerar en anslutning. Använd :memory: för en tillfällig databas i RAM.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Markörer och cursor.execute
Du kör SQL via en markör som hämtas från anslutningen. cursor.execute(sql) skickar en instruktion till databasen.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Definiera en tabell med ett schema. IF NOT EXISTS gör instruktionen säker att köra upprepade gånger — den ger inget fel om tabellen redan finns.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT med platshållare
Bygg aldrig SQL med strängformatering — det öppnar för SQL-injektion och orsakar problem med citattecken. Använd platshållare med ? och skicka värdena som en tupel.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Infoga många rader med executemany
executemany infogar en lista med tupler i ett effektivt anrop — mycket snabbare än att köra execute i en loop.
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() sparar ändringar
Skrivningar sker i en transaktion och sparas inte permanent förrän du anropar conn.commit(). Att glömma detta är det vanligaste nybörjarfelet — dina data försvinner tyst när anslutningen stängs.
conn.commit() # persist all pending INSERT/UPDATE/DELETEFråga med fetchall och fetchone
Efter en SELECT hämtar du resultaten:
fetchone()— nästa enskilda radfetchall()— alla återstående rader som en lista med tupler- iterera direkt över markören för stora resultat
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtrera och sortera
SQL gör det tunga arbetet: filtrera med WHERE, sortera med ORDER BY och begränsa med LIMIT. Använd platshållare även för frågevärden.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Radfabrik för åtkomst med namn
Som standard är rader tupler. Ange conn.row_factory = sqlite3.Row för att komma åt kolumner med namn, vilket är mycket mer lättläst.
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"])Kontexthanterare för säkerhet
När du använder with för anslutningen genomförs en commit automatiskt vid framgång och en rollback vid fel. Tillsammans med closing garanterar detta att resurserna städas upp.
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),
)Snabbkontroll: Spara skrivningar
Du körde flera INSERT-instruktioner och stängde sedan anslutningen — men nästa gång var data borta.
Sammanfattning: SQLite med sqlite3
Nu kan du använda en riktig databas från Python:
sqlite3.connectoch encursorCREATE TABLE IF NOT EXISTSför säkra schemanINSERTmed platshållare och?samtexecutemanyconn.commit()för att spara skrivningarfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowoch kontexthanterare för ren och säker kod
Nästa steg: kopplingen mellan pandas och SQL.
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 53
- Lektioner
- 225
Vanliga frågor
Är lektionen ”SQLite med Pythons sqlite3-modul” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Lär Er AI med Python, inklusive ”SQLite med Pythons sqlite3-modul”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Lär Er AI med Python innehåller totalt 4 lektioner.
Vad lär jag mig i ”SQLite med Pythons sqlite3-modul”?
Skapa databaser och tabeller, använda INSERT/SELECT/UPDATE, parametriserade frågor och hantera anslutningar. Ni övar på Lär Er AI med Python med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Lär Er AI med Python?
Du behöver inga förkunskaper. Utbildningen i Lär Er AI med Python på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”SQLite med Pythons sqlite3-modul”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Lär Er AI med Python-lektionen?
Ja. Varje Lär Er AI med Python-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- SQLite med Pythons sqlite3-modul
- Integration mellan Pandas och SQL
- Lagra och fråga efter ML-resultat
- Introduktion till vektordatabaser