Программирование

Основы работы с базой данных SQLite в Python

Основы работы с базой данных SQLite в Python

База данных - один из самых полезных и популярных файлов для хранения данных; их можно использовать для хранения любых данных, включая текст, числа, изображения, двоичные данные, файлы и т. д. SQLite - это система управления реляционными базами данных, основанная на языке SQL. Это библиотека C, которая предоставляет API для работы с другими языками программирования, включая Python. Он не требует запуска отдельного серверного процесса по мере необходимости в больших механизмах баз данных, таких как MySQL и Postgresql.

Он быстрый и легкий, а вся база данных хранится в одном файле на диске, что делает его переносимым, как CSV или другие файлы для хранения данных. Многие приложения используют SQLite для внутреннего хранения данных, в основном в таких средах, как мобильные устройства или небольшие приложения.

База данных SQLite для Python

Давайте углубимся в SQLite с языком программирования Python. В этом руководстве мы изучим преимущества использования SQLite, основы модуля python sqlite3, создание таблицы в базе данных, вставку данных в таблицу, запрос данных из таблицы и обновление данных таблицы.

Преимущества использования SQLite

Основные преимущества использования SQLite:

SQLite также используется в Google Chrome для хранения файлов cookie, пользовательских данных и других важных данных, включая пароли пользователей. ОС Android также использует SQLite в качестве основного движка базы данных для хранения данных.

Модуль Python SQLite3

Чтобы использовать SQLite, в нашей системе должен быть установлен Python. Если в вашей системе еще не установлен Python, вы можете обратиться к нашему пошаговому руководству по установке Python в Linux. Мы могли бы использовать SQLite в Python, используя sqlite3 модуль доступен в стандартной библиотеке Python. Герхард Херинг написал модуль sqlite3; он предоставляет интерфейс SQL, совместимый с DB-API 2.0. Он поставляется с предустановленной стандартной библиотекой Python, поэтому нам не нужно беспокоиться о дальнейшей установке.

Создание подключения к базе данных

Первым шагом при работе с SQLite в Python является настройка соединения с базой данных. Мы можем сделать это, используя метод connect () sqlite3 для установки соединения. Взгляните на следующий код в качестве примера. Вы можете просто скопировать код в IDE или текстовый редактор и выполнить его. Если у вас возникла проблема с выбором IDE для Python, вы можете обратиться к нашему руководству по сравнению лучшей IDE для Python. Рекомендуется снова переписать код в вашей среде IDE, и если вы хотите скопировать код, проверьте синтаксис с кодом, представленным здесь.

# импорт необходимых модулей import sqlite3 # настройка соединения с базой данных conn = sqlite3.подключить ("образец.db ") print (" Успешно подключился к базе данных ") # закрытие соединения conn.Закрыть()

Вышеупомянутая программа создаст соединение с файлом базы данных SQLite «sample».db.”Это даст следующий вывод в терминале.

Посмотрим, что происходит в приведенном выше коде. В первой строке мы импортировали модуль sqlite3, который поможет нам работать с базами данных SQLite на Python.

Во второй строке мы создаем соединение с файлом базы данных SQLite с именем «sample».db »с помощью соединять() функция. Функция connect () принимает в качестве аргумента путь к файлу базы данных. Если файл не существует по указанному пути, он сам создаст новый файл базы данных с заданным именем в этом пути. Функция connect () вернет объект базы данных в нашей программе; мы сохраняем возвращенный объект в переменной с именем conn.

Третья строка в нашей программе - это простая Распечатать оператор для отображения сообщения об успешном соединении. Последняя строка программы разрывает соединение с базой данных с помощью Закрыть() функция объекта подключения.

В предыдущем примере мы создали базу данных на диске, но мы также можем создать базу данных в ОЗУ первичной памяти. Создание базы данных в оперативной памяти ускоряет выполнение базы данных, чем обычно. Тем не менее, база данных будет создана временно, и, когда выполнение программы остановится, она удалит базу данных из памяти. Мы можем создать базу данных в памяти, указав конкретное имя: memory: в качестве аргумента функции соединять() функция. См. Программу ниже в качестве иллюстрации.

импортировать sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] База данных успешно создана в памяти") conn.Закрыть()

Вышеупомянутая программа создаст базу данных в ОЗУ, и мы сможем использовать ее для выполнения почти всех задач, которые мы можем сделать с базами данных, созданными на диске. Этот метод по какой-то причине полезен при создании временной виртуальной базы данных.

Курсор SQLite3

Акурсор объект - это наш интерфейс к базе данных, позволяющий запускать любыеSQL-запрос в базе данных. Для выполнения любых сценариев SQL с использованием sqlite3 нам необходимо создать объект курсора. Чтобы создать объект курсора, нам нужно использовать курсор() метод связь объект. Мы можем создать объект курсора нашей базы данных, используя следующий код.

# импорт необходимых модулей import sqlite3 # настройка подключения к базе данных conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") cur.close () # закрытие соединения conn.Закрыть()

Когда программа будет выполнена, результат будет таким, как показано на изображении ниже.

Посмотрим, как работает приведенный выше код. В приведенном выше коде первый, второй, третий настраивают соединение с базой данных, как показано ранее. В четвертой строке мы использовали курсор() метод объекта подключения для создания объекта курсора и сохранения возвращенного объекта курсора в переменной с именем cur. Пятая строка - генерал Распечатать() утверждение. В шестой строке мы уничтожили объект курсора из памяти, используя Закрыть() метод объекта курсора.

Типы данных SQLite

Прежде чем продолжить, давайте сначала разберемся с типами данных SQLite. Ядро базы данных SQLite имеет несколько классов хранения для хранения многих типов данных, включая текст, двоичные данные, целые числа и т. Д. Каждое значение имеет один из следующих типов данных.

Типы данных SQLite:

Сравнение типов данных SQLite и Python

Нам будет много раз, когда нам нужно будет использовать типы данных python для хранения некоторых данных SQL и выполнения некоторых действий. Для этого нам нужно знать, какие типы данных SQL относятся к каким типам данных python.

Следующие типы Python несколько похожи на типы данных SQLite:

Тип Python Тип SQLite
Никто НОЛЬ
int ЦЕЛОЕ
плавать НАСТОЯЩИЙ
ул ТЕКСТ
байты BLOB

Создание таблицы с использованием SQLite

Чтобы создать таблицу с использованием SQLite, нам нужно использовать СОЗДАТЬ ТАБЛИЦУ выражение SQL в выполнять() метод объекта курсора. Базовый синтаксис оператора CREATE TABLE в SQL показан ниже:

CREATE TABLE имя_таблицы (имя_столбца ограничение типа данных,… имя_столбца ограничение типа данных);

Чтобы использовать приведенный выше оператор SQLite в Python, нам нужно запустить приведенный ниже пример программы. Он создаст в нашей базе данных таблицу с именем employee.

импортировать sqlite3 conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") table = cur.execute ("" "CREATE TABLE employee (id INT PRIMARY KEY, name CHAR (25), salary CHAR (25), joining_date DATE);" "") print ("\ n [+] Таблица была создана успешно") дворняга.close () conn.Закрыть()

В приведенной выше программе мы создали работник таблица с атрибутами я бы, имя, зарплата, а также Дата вступления. Теперь эту таблицу можно использовать для хранения данных или запроса данных в соответствии с требованиями. Вы увидите следующий вывод в терминале.

В приведенном выше коде мы использовали выполнять() метод объекта курсора для запуска команды SQL для создания таблицы с заданными столбцами.

Вставка данных в таблицу

Мы создали таблицу в нашей базе данных SQLite. Теперь давайте вставим в него данные с помощью SQL. Базовый синтаксис оператора SQL INSERT:

INSERT INTO table_name (columns_name_1, columns_name_2,…) VALUES (columns_data_1, columns_data_1,…)

В приведенном выше синтаксисе table_name это имя таблицы, в которую мы хотим вставить наши данные. В имя_столбца_1, имя_столбца_2, это имя столбцов, присутствующих в таблице. В column_data_1, column_data_2,… данные, которые мы хотим вставить в указанные столбцы.

Давайте посмотрим на практическую демонстрацию для вставки данных в таблицу. Мы добавим данные в нашу таблицу с именем работник с использованием SQLite и Python. Запустите приведенный ниже код, чтобы вставить данные в таблицу.

импортировать sqlite3 conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") cur.execute ("INSERT INTO employee (id, name, salary, joining_date) VALUES (1001, 'David', 50000, '1-08-2019')") cur.execute ("INSERT INTO employee (id, name, salary, joining_date) VALUES (1002, 'Sam', 80000, '3-09-2020')") cur.execute ("INSERT INTO employee (id, name, salary, joining_date) VALUES (1003, 'Roshan', 90000, '8-08-2020')") cur.execute ("INSERT INTO employee (id, name, salary, joining_date) VALUES (1004, 'Kishan', 100000, '9-09-2020')") cur.execute ("INSERT INTO employee (id, name, salary, joining_date) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") print ("\ n [+] Данные успешно вставлены» ) cur.close () conn.commit () conn.Закрыть()

Приведенный выше код вставит некоторые данные в работник таблица, которую мы создали ранее. Посмотрим, что происходит в коде. Первые пять строк используются для создания соединения с базой данных и установки курсора. В строках с шести по десять мы должны использовать команду SQL INSERT для вставки данных в таблицу сотрудников. Мы должны использовать имя столбца таблицы сотрудников в первой скобке и данные для столбцов во второй скобке. Нам просто нужно использовать совершить() метод объекта подключения перед отключением от базы данных, иначе внесенные нами изменения не будут сохранены в базе данных.

Запрос данных из таблицы

Мы узнали, как вставлять данные в базу данных SQLite, но нам также необходимо запрашивать данные из базы данных, которые будут использоваться нашей программой или пользователями. Для запроса данных мы можем использовать оператор SQL SELECT в методе execute (). Базовый синтаксис оператора SELECT показан ниже.

ВЫБЕРИТЕ имена столбцов ИЗ имя_таблицы

В columns_names в синтаксисе будет имя столбцов, которые нам нужно запросить. Эти столбцы должны присутствовать в таблице, имя которой указано вместо table_name. Теперь давайте посмотрим, как мы можем использовать этот синтаксис для запроса данных из нашей таблицы сотрудников. Просто запустите следующий код, чтобы увидеть иллюстрацию.

импортировать sqlite3 conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") cur.execute ("ВЫБРАТЬ идентификатор, имя ОТ сотрудника") table = cur.fetchall () для i в таблице: print (i) cur.close () conn.commit () conn.Закрыть()

Результат, предоставляемый вышеуказанной программой, показан ниже.

Вышеупомянутая программа запросит столбцы в таблице сотрудников я бы а также название. Мы можем собрать данные, которые были возвращены, используя fetchall () метод объекта курсора. Возвращенные данные представляют собой список Python, содержащий запрошенные нами строки. Чтобы отобразить отдельные строки, мы должны использовать цикл Python for для перебора списка; вы можете узнать больше о цикле Python for здесь. Теперь давайте посмотрим, что можно сделать с помощью оператора SELECT.

Получить все данные из таблицы

Иногда возникает необходимость получить все записи из таблицы базы данных. Чтобы получить все записи с помощью оператора SQL SELECT, нам нужно следовать базовому синтаксису, приведенному ниже:

ВЫБРАТЬ * ИЗ имя_таблицы

В * символ будет использоваться для обозначения всех столбцов, и с его помощью мы можем запросить все столбцы таблицы SQLite. Чтобы получить все записи из таблицы employee, которую мы создали ранее, нам нужно запустить следующий код.

импортировать sqlite3 conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") cur.выполнить ("ВЫБРАТЬ * ОТ сотрудника") rows = cur.fetchall () print ("\ n [+] Запрос данных \ n") для i в строках: print (i) cur.close () conn.commit () conn.Закрыть()

Приведенный выше код отобразит все записи, присутствующие в таблице сотрудников, которую мы создали ранее. Результат программы будет примерно таким:

Данные запроса в определенном порядке

Иногда нам нужно запрашивать данные из таблицы в определенном порядке, например, по возрастанию или по убыванию. Мы можем использовать оператор SELECT с ключевым словом ORDER BY для отображения данных по порядку. Базовый синтаксис ключевого слова ORDER BY в операторе SELECT:

ВЫБРАТЬ имя_столбца ИЗ имя_таблицы ЗАКАЗАТЬ ПО имя_столбца

Давайте посмотрим, как мы можем использовать ключевое слово ORDER BY для отображения данных из таблицы сотрудников по имени.

импортировать sqlite3 conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") cur.execute ("ВЫБРАТЬ * ОТ сотрудника ORDER BY name") table = cur.fetchall () для i в таблице: print (i) cur.close () conn.commit () conn.Закрыть()

Вы можете увидеть результат выполнения вышеуказанного кода, как показано ниже.

Вы можете заметить в выводе, что данные отображаются в порядке возрастания столбца название.

Обновление записей в таблице

Есть много ситуаций, когда мы хотим обновить таблицу наших баз данных. Например, если мы используем базу данных для школьного приложения, то нам нужно будет обновить данные, если ученик переехал в новый город. Мы можем быстро обновить строку любой таблицы нашей базы данных, используя ОБНОВИТЬ оператор SQL в методе execute (). Нам нужно будет использовать предложение WHERE в SQL в качестве условия для выбора сотрудника. Основной синтаксис ОБНОВИТЬ заявление показано ниже.

UPDATE имя_таблицы SET update_required WHERE Some_condition

См. Пример ниже в качестве иллюстрации оператора UPDATE.

импортировать sqlite3 conn = sqlite3.подключить ("образец.db ") print (" \ n [+] Успешное подключение к базе данных ") cur = conn.cursor () print ("\ n [+] Курсор успешно настроен") print ("\ n [+] Данные до обновления \ n") cur.выполнить ("ВЫБРАТЬ * ОТ сотрудника") before = cur.fetchall () для i раньше: print (i) cur.execute ("ОБНОВИТЬ НАБОР сотрудника name = 'Aditya', где name = 'Sam'") print ("\ n [+] Данные после обновления \ n") cur.выполнить ("ВЫБРАТЬ * ОТ сотрудника") after = cur.fetchall () для i после: print (i) cur.close () conn.commit () conn.Закрыть()

Вышеупомянутая программа обновит таблицу сотрудника. Заменяет имя Сэм с именем Адитья где бы он ни появился в таблице. См. Изображение ниже для вывода программы.

Заключение

Это наше исчерпывающее руководство по выполнению некоторых основных задач, связанных с базой данных SQLite, с использованием Python. В предстоящем руководстве мы увидим еще несколько продвинутых способов использования, которые помогут вам перейти на следующий уровень изучения базы данных SQLite для Python. Следите за обновлениями FOSSLinux.

Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...
Как записать и транслировать игровую сессию в Linux
В прошлом игры считались только хобби, но со временем игровая индустрия увидела огромный рост с точки зрения технологий и количества игроков. Игровая ...