Oppikaa tekoälyä Pythonilla · Oppitunti

SQLite Pythonin sqlite3-moduulilla

Tietokantojen ja taulujen luominen, INSERT/SELECT/UPDATE, parametrisoidut kyselyt ja yhteyksien hallinta.

Oppitunti 1/413 vaihetta

SQLite Pythonin sqlite3-moduulilla on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Miksi tietokantoja käytetään tekoälyssä?

Tekstitiedostot toimivat, kunnes data kasvaa tai projektin monet osat tarvitsevat samoja tietueita. Tietokanta tarjoaa nopeat kyselyt, jäsennellyt skeemat ja turvallisen samanaikaisen käytön.

SQLite on asetuksia vaatimaton tiedostopohjainen tietokanta, joka sisältyy Pythoniin sqlite3-moduulin kautta — täydellinen tekoälykokeiluihin ja pieniin projekteihin.

Yhdistäminen komennolla sqlite3.connect

sqlite3.connect avaa tietokantatiedoston tai luo sen ja palauttaa yhteyden. Käytä arvoa :memory: tilapäiseen RAM-muistissa olevaan tietokantaan.

import sqlite3

conn = sqlite3.connect("ml.db")   # creates ml.db if missing
print(conn)

Kursorit ja cursor.execute

Suoritat SQL-komennot yhteydestä saadun kursorin kautta. cursor.execute(sql) lähettää lauseen tietokantaan.

import sqlite3

conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())

CREATE TABLE IF NOT EXISTS

Määritä taulu skeemalla. IF NOT EXISTS tekee lauseesta turvallisen suorittaa toistuvasti — se ei aiheuta virhettä, jos taulu on jo olemassa.

cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    accuracy REAL,
    created_at TEXT
)
""")

INSERT ja paikkamerkit

Älä koskaan rakenna SQL:ää merkkijonomuotoilulla — se altistaa SQL-injektiolle ja aiheuttaa ongelmia lainausmerkkien kanssa. Käytä ?-paikkamerkkejä ja välitä arvot tuplena.

cur.execute(
    "INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
    ("baseline", 0.82, "2026-05-29"),
)

Useiden rivien lisääminen komennolla executemany

executemany lisää tuplien luettelon yhdellä tehokkaalla kutsulla — paljon nopeammin kuin silmukka, joka kutsuu komentoa 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() tallentaa muutokset

Kirjoitukset tapahtuvat transaktion sisällä, eikä niitä tallenneta pysyvästi ennen kuin kutsut komentoa conn.commit(). Tämän unohtaminen on aloittelijoiden yleisin virhe — tietosi katoavat suljettaessa huomaamatta.

conn.commit()   # persist all pending INSERT/UPDATE/DELETE

Kyselyt komennoilla fetchall ja fetchone

Nouda tulokset SELECT-komennon jälkeen:

  • fetchone() — seuraava yksittäinen rivi
  • fetchall() — kaikki jäljellä olevat rivit tupleluettelona
  • iteroi suurten tulosten tapauksessa kursoria suoraan
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
    print(row)   # ("baseline", 0.82) ...

Suodattaminen ja järjestäminen

SQL tekee raskaan työn: suodata komennolla WHERE, lajittele komennolla ORDER BY ja rajoita tuloksia komennolla LIMIT. Käytä paikkamerkkejä myös kyselyjen arvoille.

cur.execute(
    "SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
    (0.85,),
)
print(cur.fetchall())

Rivitehdas nimettyä käyttöä varten

Oletusarvoisesti rivit ovat tupleja. Aseta conn.row_factory = sqlite3.Row, jotta voit käyttää sarakkeita nimillä — se on paljon selkeämpää.

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"])

Kontekstinhallinta turvallisuutta varten

Yhteyden käyttäminen with-lauseessa vahvistaa muutokset automaattisesti onnistumisen jälkeen ja peruu ne virheen sattuessa. Yhdessä closing-komennon kanssa se varmistaa resurssien vapauttamisen.

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),
        )

Pikatarkistus: kirjoitusten säilyminen

Suoritit useita INSERT-lauseita ja suljit sitten yhteyden — mutta seuraavalla kerralla data oli kadonnut.

Kertaus: SQLite ja sqlite3

Osaat nyt käyttää oikeaa tietokantaa Pythonista:

  • sqlite3.connect ja cursor
  • CREATE TABLE IF NOT EXISTS turvallisten skeemojen määrittämiseen
  • INSERT yhdessä ?-paikkamerkkien ja komennon executemany kanssa
  • conn.commit() kirjoitusten tallentamiseen pysyvästi
  • fetchone/fetchall, WHERE/ORDER BY/LIMIT
  • sqlite3.Row ja kontekstinhallinta selkeää ja turvallista koodia varten

Seuraavaksi pandasin ja SQL:n yhdistäminen.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
53
Oppitunnit
225

Usein kysytyt kysymykset

Onko oppitunti ”SQLite Pythonin sqlite3-moduulilla” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “SQLite Pythonin sqlite3-moduulilla”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”SQLite Pythonin sqlite3-moduulilla”?

Tietokantojen ja taulujen luominen, INSERT/SELECT/UPDATE, parametrisoidut kyselyt ja yhteyksien hallinta. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”SQLite Pythonin sqlite3-moduulilla”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?

Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. SQLite Pythonin sqlite3-moduulilla
  2. Pandasin ja SQL:n integrointi
  3. ML-tulosten tallentaminen ja kysely
  4. Johdatus vektoritietokantoihin
← Takaisin: Oppikaa tekoälyä Pythonilla