Открыть соединение с файлом базы данных SQLite.
Синтаксис:
import sqlite3
sqlite3.connect(database[, timeout, detect_types,
isolation_level, check_same_thread,
factory, cached_statements, uri])
Параметры:
database
- путь к файлу с базой данных,timeout
- тайм-аут блокировки базы при изменении,detect_types
- обнаружения типов,isolation_level
- уровень изоляции,check_same_thread
- использование нескольких потоков,factory
- пользовательский класс Connection
,cached_statements
- кэширование инструкций,uri
- интерпретировать подключение как URI.
Возвращаемое значение:
Описание:
Функция
connect()
модуля
sqlite3
открывает соединение с файлом базы данных SQLite
database
. По умолчанию возвращает
объект Connection
, если не указана пользовательская фабрика.
Аргумент database
- это строка, представляющая путь или объект, похожий на путь, который задает абсолютный или относительный путь к текущему рабочему каталогу открываемого файла базы данных. Можно использовать строку ':memory:'
, чтобы открыть соединение с базой данных, которая будет находится в оперативной памяти, а не на диске.
Когда доступ к базе данных осуществляется несколькими подключениями и один из процессов изменяет базу данных, то база данных SQLite блокируется, пока эта транзакция не будет зафиксирована. Аргумент timeout
указывает, как долго соединение должно ожидать, пока блокировка не исчезнет, до возникновения исключения. Значение по умолчанию для параметра времени ожидания - 5,0 (пять секунд).
По умолчанию аргумент check_same_thread
имеет значение True
и только создавая поток может использовать это подключение. Если установлено значение False
, то возвращаемое соединение может быть общим для нескольких потоков. При использовании нескольких потоков с одним и тем же соединением операции записи должны быть сериализованы пользователем, чтобы избежать повреждения данных.
За подробностями обращайтесь к разделу «Типы SQLite и Python» данного руководства.
Модуль sqlite3 внутренне использует кэш инструкций, чтобы избежать накладных расходов на синтаксический анализ SQL. Если необходимо явно указать количество операторов, которые должны кешироваться для соединения, то можно установить аргумент cached_statements
. В настоящее время реализованным значением по умолчанию является кэширование 100 операторов.
Если аргумент uri
имеет значение True
, то база данных интерпретируется как URI. Это позволяет указать параметры, например чтобы открыть базу данных в режиме только для чтения, вы можете использовать:
db = sqlite3.connect('file:path/to/database?mode=ro', uri=True)
Примеры:
import sqlite3
con = sqlite3.connect('example.db')
cur = con.cursor()
# или
con = sqlite3.connect(":memory:")
con.isolation_level = None
cur = con.cursor()