Python Schoolby trefilov
Шаг 1 из 4+120 XP

SQLite — встроенная БД

Полноценная реляционная БД прямо в стандартной библиотеке.

SQLite — реляционная БД в стандартке

Что это

SQLite — встраиваемая БД, без сервера, вся база в одном файле (или ":memory:" для тестов). В Python работает через стандартный модуль sqlite3. Идеально для прототипов, локальных приложений, тестов и проектов до десятков ГБ.

Как читается

import sqlite3
conn = sqlite3.connect(":memory:")
cur = conn.cursor()
cur.execute("CREATE TABLE users(id INTEGER, name TEXT)")
cur.execute("INSERT INTO users VALUES (?, ?)", (1, "Аня"))
for row in cur.execute("SELECT * FROM users"):
    print(row)

- connect(...) — открывает базу (создаст файл, если его нет).
- cursor() — объект для выполнения запросов.
- ? — плейсхолдер. Никогда не подставляй переменные через f-строку: SQL-инъекция.
- Итерация по cur.execute(SELECT) отдаёт строки кортежами.

Пример

import sqlite3

conn = sqlite3.connect(":memory:")
cur = conn.cursor()
cur.execute("CREATE TABLE sales(id INTEGER, amount REAL)")
cur.executemany(
"INSERT INTO sales VALUES (?, ?)",
[(1, 99.5), (2, 120.0), (3, 17.25)],
)
conn.commit()
total = cur.execute("SELECT SUM(amount) FROM sales").fetchone()[0]
print(round(total, 2)) # 236.75

Когда использовать / подводные камни

👍 Локальные данные, тесты с реальной БД, легковесные приложения.
👎 Не забывай conn.commit() после INSERT/UPDATE — иначе изменения потеряются. Один Connection — не для нескольких потоков; нужен пул или check_same_thread=False.