Введение
Работа с базами данных — важная часть разработки любого программного обеспечения. Один из самых простых и мощных способов хранения данных в локальном проекте — использование SQLite. Это лёгкая, встроенная в Python база данных, которая не требует отдельного сервера. В этой статье мы подробно рассмотрим, как работать с SQLite в Python, создавая таблицы, выполняя запросы, обрабатывая данные и применяя лучшие практики.
Что такое SQLite?
SQLite — это встраиваемая реляционная база данных, не требующая установки или запуска отдельного сервера. Она хранит данные в одном файле, идеально подходит для прототипирования, настольных и мобильных приложений.
Преимущества SQLite:
-
Встроена в Python (модуль
sqlite3
) -
Не требует конфигурации
-
Высокая производительность для небольших и средних проектов
-
Простота использования
Зачем использовать SQLite в Python?
Ключевые причины:
-
Для учебных и учебно-практических проектов
-
Для локальных приложений и скриптов
-
Для небольших веб-приложений (например, с Flask)
-
Как база для хранения конфигураций или данных в оффлайн-программах
Установка и импорт SQLite в Python
SQLite встроен в стандартную библиотеку Python, поэтому ничего устанавливать не нужно. Просто импортируйте модуль:
Создание и подключение к базе данных
Подключение к файлу базы данных
Подключение к базе данных в памяти
Создание таблицы в SQLite
Вставка данных в таблицу SQLite
Один элемент:
Множественная вставка:
Чтение данных из SQLite
Использование словаря вместо кортежа
Обновление данных
Удаление данных
Закрытие соединения
Как безопасно использовать SQLite: Лучшие практики
-
Используйте плейсхолдеры (?) вместо форматирования строк. Это защищает от SQL-инъекций.
-
Закрывайте соединение. Или используйте контекстный менеджер:
-
Используйте транзакции. Автоматически делается с
commit()
, но можно использоватьconn.isolation_level
для более гибкого контроля. -
Обрабатывайте ошибки: Используйте блоки
try/except
для перехвата исключений.
Пример: Полная программа на Python с SQLite
Когда не стоит использовать SQLite?
-
При большом количестве параллельных записей
-
Для масштабируемых веб-приложений
-
Когда требуется шифрование, репликация, масштабирование
Для этих целей лучше использовать PostgreSQL, MySQL, MariaDB и др.
Альтернативы SQLite в Python
База данных | Особенности |
---|---|
PostgreSQL | Надежная, с продвинутыми функциями |
MySQL | Быстрая и популярная в вебе |
MongoDB | Документо-ориентированная NoSQL база |
TinyDB / Shelve | Для микропроектов без SQL |