Работа с SQLite в Python — встроенная реляционная БД без сервера!



Для небольших сервисов, скриптов, утилит и локальных инструментов отлично подходит SQLite — встроенная реляционная БД. Python поддерживает SQLite из коробки через модуль sqlite3.

Подключаемся к базе данных (если файла нет — он будет создан автоматически) и используем контекстный менеджер.

При нормальном выходе он выполнит commit, а при исключении — rollback, после чего корректно закроет соединение:
import sqlite3

with sqlite3.connect("users.db") as conn:
cursor = conn.cursor()

cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
""")


Добавим данные:
users = [
("Alice", 30),
("Bob", 25),
("Charlie", 35)
]

cursor.executemany(
"INSERT INTO users (name, age) VALUES (?, ?)",
users
)


? — плейсхолдер параметров в SQL-запросе. Он обеспечивает безопасную передачу значений в запрос и защищает от SQL-инъекций при работе с данными.

Чтение данных:
cursor.execute("SELECT id, name, age FROM users")

for row in cursor.fetchall():
print(row)


Обновление и удаление записей — стандартные CRUD-операции с использованием параметризованных SQL-запросов
cursor.execute(
"UPDATE users SET age = ? WHERE name = ?",
(31, "Alice")
)

cursor.execute(
"DELETE FROM users WHERE name = ?",
("Bob",)
)


SQLite — отличный инструмент для практики SQL, хранения конфигураций, кэша и небольших объёмов данных.

Python Ready | #практика
Просмотры: 251
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти