SQLite med Pythons sqlite3-modul
Opprett databaser og tabeller, bruk INSERT/SELECT/UPDATE og parameteriserte spørringer, og håndter tilkoblinger.
SQLite med Pythons sqlite3-modul er en gratis leksjon i Lær AI med Python på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Lær AI med Python, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hvorfor bruke databaser til AI?
Flate filer fungerer helt til datamengden vokser, eller mange deler av et prosjekt trenger de samme postene. En database gir raske spørringer, strukturerte skjemaer og trygg samtidig tilgang.
SQLite er en filbasert database uten oppsett som er innebygd i Python via modulen sqlite3 — perfekt for AI-eksperimenter og små prosjekter.
Koble til med sqlite3.connect
sqlite3.connect åpner eller oppretter en databasefil og returnerer en tilkobling. Bruk :memory: for en midlertidig database i RAM.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Cursorer og cursor.execute
Du kjører SQL gjennom en cursor som du henter fra tilkoblingen. cursor.execute(sql) sender en instruksjon 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
Definer en tabell med et skjema. IF NOT EXISTS gjør instruksjonen trygg å kjøre flere ganger — den gir ingen feil hvis tabellen allerede finnes.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT med plassholdere
Bygg aldri SQL med strengformatering — det åpner for SQL-injection og skaper problemer med anførselstegn. Bruk ?-plassholdere og send verdiene som en tuppel.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Sette inn mange rader med executemany
executemany setter inn en liste med tupler i ett effektivt kall — mye raskere enn å kjøre 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() lagrer endringer
Skriveoperasjoner skjer i en transaksjon og blir ikke lagret permanent før du kaller conn.commit(). Å glemme dette er den vanligste nybegynnerfeilen — dataene dine forsvinner uten feilmelding når tilkoblingen lukkes.
conn.commit() # persist all pending INSERT/UPDATE/DELETESpørre med fetchall og fetchone
Etter en SELECT henter du resultatene slik:
fetchone()— neste enkeltstående radfetchall()— alle gjenværende rader som en liste med tupler- iterer direkte over cursoren for store resultater
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtrere og sortere
SQL gjør det meste av arbeidet: filtrer med WHERE, sorter med ORDER BY, og begrens med LIMIT. Bruk også plassholdere for verdier i spørringen.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Row factory for tilgang med navn
Som standard er rader tupler. Angi conn.row_factory = sqlite3.Row for å få tilgang til kolonner med navn, noe som er langt mer lesbart.
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"])Kontekstbehandlere for sikkerhet
Når du bruker with på tilkoblingen, committer den automatisk ved suksess og ruller tilbake ved feil. Kombinert med closing sikrer dette at alt ryddes opp.
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),
)Hurtigsjekk: Lagre skriveoperasjoner
Du kjørte flere INSERT-instruksjoner og lukket deretter tilkoblingen — men dataene var borte neste gang.
Oppsummering: SQLite med sqlite3
Du kan nå bruke en ekte database fra Python:
sqlite3.connectog encursorCREATE TABLE IF NOT EXISTSfor trygge skjemaerINSERTmed?-plassholdere ogexecutemanyconn.commit()for å lagre skriveoperasjoner permanentfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowog kontekstbehandlere for ryddig og trygg kode
Neste trinn: koble sammen pandas og SQL.
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 53
- Leksjoner
- 225
Ofte stilte spørsmål
Er leksjonen «SQLite med Pythons sqlite3-modul» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Lær AI med Python, inkludert «SQLite med Pythons sqlite3-modul», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Lær AI med Python inneholder totalt 4 leksjoner.
Hva lærer jeg i «SQLite med Pythons sqlite3-modul»?
Opprett databaser og tabeller, bruk INSERT/SELECT/UPDATE og parameteriserte spørringer, og håndter tilkoblinger. Du øver på Lær AI med Python med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Lær AI med Python?
Ingen tidligere erfaring er nødvendig. Lær AI med Python på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «SQLite med Pythons sqlite3-modul»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Lær AI med Python-leksjonen?
Ja. Alle Lær AI med Python-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- SQLite med Pythons sqlite3-modul
- Integrasjon mellom Pandas og SQL
- Lagre og spørre etter ML-resultater
- Introduksjon til vektordatabaser