0Pricing
Learn AI with Python · Lekcja

SQLite z modułem sqlite3 Pythona

Tworzenie baz danych i tabel, INSERT/SELECT/UPDATE, zapytania parametryzowane i zarządzanie połączeniami.

SQLite z modułem sqlite3 Pythona to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Dlaczego bazy danych w AI?

Pliki płaskie sprawdzają się do czasu, gdy dane się rozrosną lub wiele części projektu będzie potrzebować tych samych rekordów. Baza danych zapewnia szybkie zapytania, ustrukturyzowane schematy i bezpieczny jednoczesny dostęp.

SQLite to niewymagająca konfiguracji baza danych oparta na pliku, wbudowana w Python za pośrednictwem modułu sqlite3 — idealna do eksperymentów z AI i małych projektów.

Łączenie za pomocą sqlite3.connect

sqlite3.connect otwiera lub tworzy plik bazy danych i zwraca połączenie. Wartość :memory: służy do utworzenia tymczasowej bazy danych w pamięci RAM.

import sqlite3

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

Obiekty cursor i cursor.execute

Zapytania SQL wykonuje się za pośrednictwem obiektu cursor uzyskanego z połączenia. cursor.execute(sql) wysyła instrukcję do bazy danych.

import sqlite3

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

CREATE TABLE IF NOT EXISTS

Tabelę należy zdefiniować za pomocą schematu. IF NOT EXISTS pozwala bezpiecznie wykonywać tę instrukcję wielokrotnie — nie spowoduje ona błędu, jeśli tabela już istnieje.

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

INSERT z symbolami zastępczymi

Nigdy nie należy tworzyć zapytań SQL za pomocą formatowania ciągów znaków — otwiera to drogę do wstrzyknięcia SQL i powoduje problemy z cudzysłowami. Należy używać symboli zastępczych ? i przekazywać wartości jako krotkę.

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

Wstawianie wielu wierszy za pomocą executemany

executemany wstawia listę krotek w jednym wydajnym wywołaniu — jest znacznie szybsze niż wielokrotne wywoływanie 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() zapisuje zmiany

Operacje zapisu odbywają się w ramach transakcji i nie zostają utrwalone, dopóki nie zostanie wywołane conn.commit(). Zapomnienie o tym to najczęstszy błąd początkujących — przy zamknięciu połączenia dane po cichu znikają.

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

Wykonywanie zapytań za pomocą fetchall i fetchone

Po wykonaniu SELECT należy pobrać wyniki:

  • fetchone() — następny pojedynczy wiersz
  • fetchall() — wszystkie pozostałe wiersze jako lista krotek
  • w przypadku dużych wyników można bezpośrednio iterować po obiekcie cursor
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
    print(row)   # ("baseline", 0.82) ...

Filtrowanie i sortowanie

SQL wykonuje najcięższą pracę: filtruje za pomocą WHERE, sortuje za pomocą ORDER BY i ogranicza liczbę wyników za pomocą LIMIT. Dla wartości w zapytaniach również należy używać symboli zastępczych.

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

Fabryka wierszy do dostępu po nazwach

Domyślnie wiersze są krotkami. Ustawienie conn.row_factory = sqlite3.Row umożliwia dostęp do kolumn po nazwie, co znacznie poprawia czytelność kodu.

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

Menedżery kontekstu dla bezpieczeństwa

Użycie with dla połączenia automatycznie zatwierdza transakcję po pomyślnym wykonaniu i wycofuje ją w razie błędu. W połączeniu z closing gwarantuje to posprzątanie zasobów.

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

Szybkie sprawdzenie: utrwalanie operacji zapisu

Wykonano kilka instrukcji INSERT, a następnie zamknięto połączenie — przy następnym użyciu danych już nie było.

Podsumowanie: SQLite z sqlite3

Można teraz korzystać z prawdziwej bazy danych w Pythonie:

  • sqlite3.connect i obiekt cursor
  • CREATE TABLE IF NOT EXISTS do bezpiecznego definiowania schematów
  • INSERT z symbolami zastępczymi ? oraz executemany
  • conn.commit() do utrwalania operacji zapisu
  • fetchone/fetchall, WHERE/ORDER BY/LIMIT
  • sqlite3.Row i menedżery kontekstu do tworzenia przejrzystego i bezpiecznego kodu

Następnie: łączenie pandas i SQL.

Często zadawane pytania

Czy lekcja „SQLite z modułem sqlite3 Pythona” jest bezpłatna?

Tak — pełny tekst „SQLite z modułem sqlite3 Pythona” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.

Co nauczysz się w „SQLite z modułem sqlite3 Pythona”?

Tworzenie baz danych i tabel, INSERT/SELECT/UPDATE, zapytania parametryzowane i zarządzanie połączeniami. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?

Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „SQLite z modułem sqlite3 Pythona”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?

Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. SQLite z modułem sqlite3 Pythona
  2. Integracja Pandas i SQL
  3. Przechowywanie i odpytywanie wyników ML
  4. Wprowadzenie do baz danych wektorowych
← Powrót do Learn AI with Python