0Pricing
Learn AI with Python · Урок

SQLite с модулем sqlite3 Python

Создание баз данных и таблиц, INSERT/SELECT/UPDATE, параметризованные запросы и управление соединениями.

«SQLite с модулем sqlite3 Python» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 4 уроков всего.

Зачем нужны базы данных для ИИ?

Плоские файлы подходят, пока объём данных не становится большим или нескольким частям проекта не требуется доступ к одним и тем же записям. База данных обеспечивает быстрые запросы, структурированные схемы и безопасный параллельный доступ.

SQLite — база данных на основе файла, не требующая настройки и встроенная в Python через модуль sqlite3. Она идеально подходит для экспериментов с ИИ и небольших проектов.

Подключение с помощью sqlite3.connect

sqlite3.connect открывает (или создаёт) файл базы данных и возвращает подключение. Используйте :memory: для временной базы данных в RAM.

import sqlite3

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

Курсоры и cursor.execute

Вы выполняете SQL через cursor, полученный из подключения. cursor.execute(sql) отправляет инструкцию в базу данных.

import sqlite3

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

CREATE TABLE IF NOT EXISTS

Определите таблицу с помощью схемы. IF NOT EXISTS делает инструкцию безопасной для повторного выполнения: она не вызовет ошибку, если таблица уже существует.

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

INSERT с заполнителями

Никогда не создавайте SQL с помощью форматирования строк: это открывает путь для внедрения SQL-кода и вызывает ошибки на кавычках. Используйте заполнители ? и передавайте значения в виде кортежа.

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

Вставка множества строк с помощью executemany

executemany вставляет список кортежей за один эффективный вызов — намного быстрее, чем многократный вызов 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() сохраняет изменения

Записи выполняются внутри транзакции и не сохраняются, пока Вы не вызовете conn.commit(). Забыть об этом — самая распространённая ошибка новичков: после закрытия подключения данные незаметно исчезают.

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

Запросы с помощью fetchall и fetchone

После выполнения SELECT получите результаты:

  • fetchone() — следующая отдельная строка
  • fetchall() — все оставшиеся строки в виде списка кортежей
  • для больших результатов напрямую перебирайте строки через cursor
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
    print(row)   # ("baseline", 0.82) ...

Фильтрация и сортировка

SQL выполняет основную работу: фильтруйте с помощью WHERE, сортируйте с помощью ORDER BY, ограничивайте количество с помощью LIMIT. Для значений запросов также используйте заполнители.

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

Фабрика строк для доступа по имени

По умолчанию строки представлены кортежами. Установите conn.row_factory = sqlite3.Row, чтобы обращаться к столбцам по имени — так код становится гораздо понятнее.

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

Менеджеры контекста для безопасности

Использование with для подключения автоматически фиксирует изменения при успехе и выполняет откат при ошибке. В сочетании с closing это гарантирует освобождение ресурсов.

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

Быстрая проверка: сохранение записей

Вы выполнили несколько инструкций INSERT, а затем закрыли подключение, но в следующий раз данные исчезли.

Итоги: SQLite с sqlite3

Теперь Вы умеете использовать настоящую базу данных из Python:

  • sqlite3.connect и cursor
  • CREATE TABLE IF NOT EXISTS для безопасных схем
  • INSERT с заполнителями ? и executemany
  • conn.commit() для сохранения записей
  • fetchone/fetchall, WHERE/ORDER BY/LIMIT
  • sqlite3.Row и менеджеры контекста для аккуратного и безопасного кода

Далее: объединение pandas и SQL.

Часто задаваемые вопросы

Урок «SQLite с модулем sqlite3 Python» бесплатный?

Да — полный текст урока «SQLite с модулем sqlite3 Python» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 4 уроков всего.

Чему я научусь в уроке «SQLite с модулем sqlite3 Python»?

Создание баз данных и таблиц, INSERT/SELECT/UPDATE, параметризованные запросы и управление соединениями. Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «SQLite с модулем sqlite3 Python»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. SQLite с модулем sqlite3 Python
  2. Интеграция Pandas и SQL
  3. Хранение и запрос результатов машинного обучения
  4. Введение в векторные базы данных
← Назад к Learn AI with Python