Содержание с кратким описанием:
SQLite - это библиотека языка C, которая предоставляет легковесную дисковую базу данных. Модуль sqlite3 обеспечивает интерфейс SQL, совместимый со спецификацией DB-API 2.0, описанной в PEP 249.
SQLite изначально поддерживает следующие типы: NULL, INTEGER, REAL, TEXT, BLOB. Таким образом, следующие типы Python могут быть отправлены в SQLite без каких-либо проблем
Чтобы использовать другие типы Python с SQLite, необходимо адаптировать их к одному из поддерживаемых типов модуля sqlite3 для SQLite: одному из `None`, `int`, `float`, `str`, `bytes`.
Адаптеры позволяют отправлять пользовательские типы Python в SQLite. Но чтобы сделать его действительно полезным, нужно заставить работать по схеме Python to SQLite to Python.
Встроенные конвертеры SQLite3 зарегистрированы под именем `date` для `datetime.date()` и под именем `timestamp` для datetime.datetime(). В большинстве случаев можно использовать дату/время из Python без дополнительных действий. Формат адаптеров также совместим с функциями даты/времени SQLite3.
SQLite изначально поддерживает только ограниченный набор типов данных. Чтобы хранить пользовательские типы Python в базах данных SQLite3, необходимо адаптировать их к одному из типов Python, которые SQLite3 понимает изначально.
Во избежании атак с использованием SQL-инъекций, необходимо использовать подстановку параметров DB-API. Чтобы вставить переменную в строку запроса, используйте заполнитель в строке и подставьте фактические значения в запрос, передав их в виде кортежа значений во второй аргумент метода курсора.
Базовая библиотека sqlite3 по умолчанию работает в режиме автоматической фиксации, а модуль sqlite3 в Python по умолчанию - нет. Режим autocommit означает, что операторы, которые изменяют базу данных, вступают в силу немедленно.
Использование методов быстрого доступа. Доступ к столбцам по имени. Использование менеджера контекста соединения.
Функция connect() модуля sqlite3 открывает соединение с файлом базы данных SQLite database. По умолчанию возвращает объект Connection, если не указана пользовательская фабрика.
Функция `register_converter()` модуля `sqlite3` регистрирует вызываемый объект `callable` для преобразования строки байтов из базы данных в пользовательский тип Python.
Функция `register_adapter()` модуля `sqlite3` регистрирует вызываемый объект (функцию) `callable` для преобразования пользовательского типа Python в один из поддерживаемых типов SQLite.
Объекта Connection получается в результате соединение с базой данных SQLite в результате вызова функции sqlite3.connect(). В разделе рассмотрены методы объекта Connection модуля sqlite3 с подробным описанием и примерами.
Объекта Cursor получается в результате вызова метода получения курсора connect.cursor(). В разделе рассмотрены методы объекта Cursor модуля sqlite3 с подробным описанием и примерами.
Объект `sqlite3.Row` это высоко оптимизированный `row_factory` для объектов `sqlite3.Connection`. Он поддерживает доступ к результату запроса как к словарю, где ключ это имя столбца. Поддерживает индексы столбцов, итерацию по строкам запроса. Метод `cursor.keys()` возвращает список имен столбцов.
Конфигурация SQLite по умолчанию поддерживает только сравнение символов ASCII без учета регистра. Приложение может перегрузить встроенную последовательность сортировки NOCASE и встроенные функции like(), upper() и lower(), используя встроенные возможности SQLite.
В разделе представлены сопутствующие функции и константы модуля sqlite3 с их описанием.
В разделе представлены исключения, определяемые в модуле sqlite3.
Объект Blob (*новое в Python 3.11*) - это файлоподобный объект, который может читать и записывать данные в SQLite BLOB. Объект Blob создается методом connect.blobopen() (*добавлен в Python 3.11*).
Утилиты csvsql и sql2csv модуля csvkit образуют мост, который упрощает миграцию данных из CSV-файла в базу данных SQLite3 и из нее. При помощи инструмента in2csv можно преобразовать Excel таблицы в CSV файл и создать из него БД.
Полезные приемы работы с URI SQLite3. Открыть базу данных в режиме только для чтения. Явное создание нового файла базы данных. Общая именованная база данных в памяти
Новое в версии 3.12. Модуль sqlite3 (с версии Python 3.12) можно вызвать как скрипт. Для вызова простой оболочки SQLite3 необходимо использовать ключ интерпретатора -m.