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.