SQLite — это библиотека C, которая предоставляет облегченную базу данных на диске, не требующую отдельного серверного процесса и позволяющую обращаться к базе данных с использованием нестандартного варианта языка запросов SQL. Некоторые приложения могут использовать SQLite для внутреннего хранения данных. Также можно создать прототип приложения с помощью SQLite, а затем перенести код в более крупную базу данных, такую как PostgreSQL или Oracle.
Модуль sqlite3 был написан Герхардом Херингом. Он предоставляет интерфейс SQL, совместимый со спецификацией DB-API 2.0, описанной в PEP 249, и требует SQLite 3.7.15 или новее.
Чтобы использовать модуль, начните с создания объекта Connection
, представляющего базу данных. Здесь данные будут храниться в файле boris_wallet.db
.
Можно указать специальное имя пути :memory:
для создания временной базы данных в оперативной памяти.
Как только Connection
установлен, создайте объект Cursor
и вызовите его метод execute()
для выполнения команд SQL.
Сохраненные данные являются постоянными: их можно перезагрузить в следующем сеансе даже после перезапуска интерпретатора Python.
У меня уже был файл boris_wallet.db, поэтому я использовал try/except/finally
Чтобы получить данные после выполнения оператора SELECT, либо обработайте курсор как итератор, либо вызовите метод курсора fetchone()
для получения одной совпадающей строки, либо вызовите fetchall()
для получения списка совпадающих строк.
Операции SQL обычно должны использовать значения из переменных Python. Однако остерегайтесь использования строковых операций Python для сборки запросов, поскольку они уязвимы для атак с внедрением SQL.
Вместо этого используйте подстановку параметров DB-API.
Чтобы вставить переменную в строку запроса, используйте заполнитель в строке и подставьте фактические значения в запрос, предоставив их как tuple
значений для второго аргумента метода execute()
курсора.
Оператор SQL может использовать один из двух типов заполнителей: вопросительные знаки (стиль qmark) или именованные заполнители (именованный стиль).
Для стиля qmark parameters
должен быть последовательностью. Для именованного стиля это может быть как последовательность, так и dict
экземпляр.
Длина последовательности должна соответствовать количеству заполнителей, иначе будет поднято ProgrammingError
. Если указано dict
, оно должно содержать ключи для всех именованных параметров. Любые дополнительные элементы игнорируются.