Как добавлять и читать данные в SQLite с помощью Python

Python поставляется со встроенным пакетом sqlite3, который мы можем импортировать в наш проект и использовать его API для подключения к базе данных SQLite и простого управления базой данных.
Подключить приложение Python к базе данных SQLite
Для соединения с базой данных SQLite используйте функцию connect().
Если файл shows.db отсутствует, он будет создан и подключен. Если он есть, то он будет подключен.
Чтобы создать таблицу в базе данных, нам нужно использовать объект курсора. Чтобы создать объект курсора, используйте метод connection.cursor() .
Теперь создайте таблицу базы данных с несколькими столбцами.
В этом коде мы написали команду, которая создаст таблицу с ее именами столбцов и типами данных.
Вставить данные в базу данных SQLite с помощью Python
Чтобы добавить данные в SQLite с помощью Python, мы используем запрос INSERT INTO TABLE . Мы выполним запрос INSERT с помощью курсора.
В этом коде мы написали запрос, и соответствующие значения столбцов — Stranger Things, Shawn Levy, 2016.
Чтение данных в базе данных SQLite с помощью Python.
Чтобы проверить, правильно ли вставлены данные в базу данных SQLite с помощью Python, используйте запрос SELECT и распечатайте строку с помощью метода cursor.fetchone() .
Последним шагом будет фиксация этих изменений для сохранения в базе данных и закрытие соединения.
Итак, наш полный код выглядит следующим образом.
Запустите указанный выше файл в терминале.
Вы можете видеть, что мы возвращаем нашу строку, что означает, что данные успешно сохранены в базе данных SQLite.
Вставить несколько данных в базу данных с помощью Python
Чтобы вставить несколько строк в базу данных, сначала создайте данные, которые вы хотите вставить, а затем используйте запрос, чтобы добавить все данные за один раз.
Здесь мы создали кортеж Python, содержащий каждую строку в таблице Shows .
Чтобы добавить несколько данных в базу данных SQLite с помощью Python, используйте метод cursor.executemany() .
Здесь он будет брать все кортежи один за другим и вставлять их в базу данных с соответствующими полями.
Теперь давайте извлечем все данные из базы данных.
Чтобы получить все записи из базы данных SQLite, используйте метод cursor.fetchall() .
Наш полный код, который добавляет несколько записей и показывает все записи пользователю:
Запустите файл и посмотрите результат.
Здесь вы можете видеть, что мы уже добавили строку Stranger Things в первом примере, сохраненную в базе данных. Вот почему он появляется во всех записях.
SQLite
SQLite — это быстрая и легкая встраиваемая однофайловая СУБД на языке C, которая не имеет сервера и позволяет хранить всю базу локально на одном устройстве. Для работы SQLite не нужны сторонние библиотеки или службы.
Понятие «встраиваемый» означает, что СУБД не использует парадигму клиент-сервер. Движок SQLite —не отдельно работающий процесс, с которым взаимодействует программа, а библиотека. Программа компонуется с ней, и движок служит составной частью программы. В качестве протокола обмена применяются вызовы функций (API) библиотеки SQLite.
Применение SQLite
База данных — это набор структурированной информации. Для ее изменения требуются системы управления — СУБД. Как и любая СУБД, SQLite позволяет записывать новую и запрашивать существующую информацию, изменять ее, настраивать доступ.
Благодаря свойствам SQLite применяется:
- на сайтах с низким и средним трафиком;
- в локальных однопользовательских, мобильных приложениях или играх, не предназначенных для масштабирования;
- в программах, которые часто выполняют прямые операции чтения/записи на диск;
- в приложениях для тестирования бизнес-логики.
SQLite не требует администрирования и работает на мобильных устройствах, игровых приставках, телевизорах, беспилотных летательных аппаратах, камерах, автомобильных мультимедийных системах и т.д. СУБД использует множество программ: Firefox, Chrome, Safari, Skype, XnView, AIMP, Dropbox, Viber и другие.
Начните свой путь в IT
Освойте разработку, аналитику данных, Data Science или другие востребованные профессии — получите все курсы для входа в IT по цене одного.
Как работает SQLite
Большинство СУБД используют клиент-серверную архитектуру: данные хранятся и обрабатываются на сервере, а запросы к нему посылает клиент. «Клиент» — это часть программы, с которой взаимодействует пользователь. «Сервером» может быть и отдельный процесс на том же компьютере (так называемый демон), и стороннее устройство, как в случае с сайтами.
SQLite устроена иначе и не имеет сервера. Это значит, что все данные программное обеспечение хранит на одном устройстве. СУБД встраивается в приложение и работает как его составная часть. Если установить на компьютер программу, использующую SQLite, то база данных тоже будет храниться на нем же. Формат базы — один текстовый файл, который можно прочитать на любой платформе. Такой подход повышает производительность и скорость работы.
Работать с SQLite можно как с библиотекой или через SQLite3.
Что такое SQLite3
SQLite3 — это консольная утилита для работы с SQLite от разработчиков СУБД. Она запускается и работает в командной строке, в консоли операционной системы. Можно скачать версии для Windows, Mac OS и Linux.
По функциональности SQLite3 — программа-клиент для клиент-серверных приложений. С ее помощью можно вводить и передавать запросы к базе данных: создавать, модифицировать, получать или удалять таблицу. Разница в том, что она обращается не к отдельному процессу-серверу, а ко встроенному в приложение движку SQLite.
В SQLite3 можно писать SQL-код: утилита отправит запрос к ядру, получит и отобразит результат.
В чем отличия SQLite и SQL
SQL — язык запросов, с помощью которого специалисты отдают команды для управления базой данных.
SQLite — СУБД, программное обеспечение, которое поддерживает этот язык. Человек, работающий с SQLite, будет использовать для обращения к базе язык запросов SQL. Но сама по себе СУБД намного шире, чем просто обертка для языка, и предоставляет множество других функций.
Подробнее про SQL можно прочитать в статье.
Преимущества SQLite
Высокая скорость. Благодаря особенностям архитектуры SQLite работает быстро, особенно на чтение. Компоненты СУБД встроены в приложение и вызываются в том же процессе. Поэтому доступ к ним быстрее, чем при взаимодействии между разными процессами.
Хранение данных в одном файле. База данных состоит из табличных записей, связей между ними, индексов и других компонентов. В SQLite они хранятся в едином файле (database file), который находится на том же устройстве, что и программа. Чтобы при работе не возникало ошибок, файл блокируется для сторонних процессов перед записью. Раньше это приводило к тому, что записывать данные в базу мог только один процесс единовременно. Но в новых версиях это решается перенастройкой режима работы СУБД.
Минимализм. Создатели SQLite пользуются принципом «минимального полного набора». Из всех возможностей SQL в ней есть наиболее нужные. Поэтому SQLite отличают малый размер, простота решений и легкость администрирования. Для повышения базовой функциональности можно использовать стороннее программное обеспечение и расширения.
Надежность. Код на 100% покрыт тестами. Это означает, что протестирован каждый компонент ПО. Поэтому SQLite считается надежной СУБД с минимальным риском непредсказуемого поведения.
Нулевая конфигурация. Перед использованием СУБД не нужна сложная настройка или длительная установка. Для решения большинства задач ей можно пользоваться «из коробки», без установки дополнительных компонентов.
Малый размер. Полностью сконфигурированный SQLite со всеми настройками занимает меньше 400 Кб. Если использовать СУБД без дополнительных компонентов, размер можно уменьшить до 250 Кб. Он зависит только от количества загруженной информации. Несмотря на малый размер, SQLite поддерживает большинство функций стандарта SQL2 и имеет ряд собственных.
Доступность. SQLite находится в публичном доступе. На ее использование нет правовых ограничений, а владельцем считается общество. Можно открывать, просматривать и изменять исходный код установленного ПО.
Кроссплатформенность. СУБД подходит для UNIX-подобных систем, MacOS и Windows.
Автономность. Система независима от стороннего ПО, библиотек или фреймворков. Чтобы приложение с базой на SQLite работало, дополнительные компоненты не требуются. Также не обязателен доступ в интернет: вся база хранится на устройстве, получить данные можно локально.
Недостатки SQLite
Ограниченная поддержка типов данных. SQLite поддерживает только четыре типа данных, которые реализованы в SQL:
- INTEGER — целое число;
- REAL — дробное число;
- TEXT — текст;
- BLOB — двоичные данные.
Также существует особое значение NULL — отсутствие данных.
Отсутствие хранимых процедур. Так называются блоки кода на SQL, которые сохраняются в базу данных. Хранимые процедуры можно вызывать как отдельные функции, и это удобно, если нужно последовательно выполнить несколько однотипных действий. Но SQLite их не поддерживает из-за особенностей архитектуры.
Ограничения в применении. Отсутствие сервера — преимущество и недостаток одновременно. Без сервера возможности СУБД меньше. Например, к одной базе не смогут обращаться несколько разных устройств.
В SQLite ограничена многопоточность — единовременное выполнение нескольких процессов. Одновременно читать из базы могут несколько процессов, а писать в нее по умолчанию — только один. В версии 3.7.0 в SQLite внедрили возможность записи разными приложениями, но даже так она уступает клиент-серверным СУБД по возможностям работы с потоками. Поэтому SQLite не подойдет для многопользовательских приложений или программ, записывающих большой объем данных.
Отсутствие бесплатной техподдержки. Стоимость профессиональной технической поддержки от разработчиков — от $1500 в год. Чтобы получить информацию бесплатно, потребуется пользоваться форумами и руководствами от пользователей, а также официальной документацией.
Отсутствие встроенной поддержки Unicode. Unicode — это популярный стандарт кодирования символов. Он включает практически все существующие знаки и буквы, поэтому считается самым распространенным в мире. Без его поддержки приложение не сможет корректно работать с кириллицей, иероглифами и многими другими символами. SQLite «из коробки» не поддерживает Unicode, его нужно настраивать отдельно. Это может вызвать сложности с локализацией.
Как начать работу с SQLite
Начать работать с системой можно двумя способами:
- Подключить СУБД в качестве библиотеки к любому поддерживаемому языку программирования. Используются API, которые могут различаться у разных языков и фреймворков. В некоторых языках программирования, например в Python, поддержка SQLite есть по умолчанию. Также SQLite включена в операционные системы, например в мобильные ОС и Windows 10. вместе с утилитой SQLite3.
Data Science с нуля
Научитесь выявлять закономерности в данных и создавать модели для решения реальных бизнес-задач.
SQLite — Синтаксис
Синтаксис — уникальный набор правил и рекомендаций в языке запросов SQLite.
Чувствительность регистра
SQLite нечувствителен к регистру , но есть некоторые команды, чувствительные к регистру, такие как GLOB и glob имеют различное значение в операциях SQLite.
Комментарии
Комментарии SQLite — это дополнительные заметки, которые вы можете добавить в свой код SQLite, чтобы повысить его читаемость, и они могут появляться в любом месте; может быть пробел, включая внутренние выражения и в середине других операторов SQL, но они не могут быть вложенными.
Комментарии SQL начинаются с двух последовательных символов «-» (ASCII 0x2d) и расширяются до следующего символа новой строки (ASCII 0x0a) и до конца ввода, в зависимости от того, что наступит раньше.
Вы также можете использовать комментарии в стиле C, которые начинаются с «/ *» и расширяются до и включают следующую пару символов «* /» или до конца ввода, в зависимости от того, что наступит раньше. Комментарии в стиле C могут охватывать несколько строк.
Операторы SQLite
Все операторы SQLite начинаются с любых ключевых слов, таких как SELECT, INSERT, UPDATE, DELETE, ALTER, DROP и т. д., И все инструкции заканчиваются точкой с запятой (;).