Python — это популярный и надежный язык программирования, богатый функциями, которые делают его пригодным для использования в широком спектре случаев, таких как анализ данных, создание сетей, автоматизация ИТ, тестирование на проникновение и многие другие. Он также имеет простой синтаксис, который позволяет разработчикам, знающим другие языки программирования, легко адаптироваться к использованию Python.
Данные повсюду, и широкий спектр программных приложений взаимодействует с данными с помощью системы управления базами данных. SQLite — одна из самых популярных систем управления базами данных в Python.
SQLite — это простой, мощный механизм реляционной базы данных с открытым исходным кодом, который поддерживает большие программные приложения и встроенные системы. SQLite является автономным и требует минимальной настройки, что упрощает настройку и запуск с минимальными затратами времени. По умолчанию в Python встроен модуль SQLite(sqlite3), очень интуитивно понятный модуль для работы с базами данных SQLite в Python.
В этой статье мы рассмотрим, как использовать Python для работы с базами данных SQLite. От установления соединения до создания баз данных, чтения баз данных, обновления и удаления баз данных.
Начнем с установки SQLite:
В зависимости от вашего дистрибутива Linux вы можете загрузить архив SQLite с https://www.sqlite.org/download.html или использовать диспетчер пакетов.
Чтобы установить его в Debian:
sudo apt-get update sudo apt-get install sqlite -y
Затем у вас должна быть установлена последняя версия Python3. По умолчанию Python должен быть предварительно установлен в вашем дистрибутиве.
Методом по умолчанию для взаимодействия с базами данных SQLite является использование оболочки. Оболочка позволяет выполнять встроенные команды SQL или набор для выполнения функций в базах данных.
Для запуска оболочки SQLite используйте команду:
$ sqlite
SQLite версии 2.8.17 Введите «.help» для получения инструкций.
sqlite >
Это должно запустить оболочку SQLite с подсказкой, позволяющей вводить команды. Начните с ввода команды .help, чтобы просмотреть справку оболочки.
sqlite> .help .databases List names and files of attached databases .dump ?TABLE? ... Dump the database in a text format .echo ON|OFF Turn command echo on or off .exit Exit this program .explain ON|OFF Turn output mode suitable for EXPLAIN on or off. .header(s) ON|OFF Turn display of headers on or off .help Show this message .indices TABLE Show names of all indices on TABLE .mode MODE Set mode to one of "line(s)", "column(s)", "insert", "list", or "html" ----------------------------------------------------------------------
Для выхода из оболочки SQLite используйте команду .quit.
sqlite > .quit
Внутри оболочки SQLite можно использовать и другие функции и операции. Например, чтобы просмотреть все базы данных, вы можете использовать команду database.
Мы настоятельно рекомендуем вам поэкспериментировать с оболочкой SQLite и ознакомиться с ней, поскольку она позволит вам понять, как использовать модуль SQLite3 в Python.
Давайте теперь будем использовать модули Python и SQLite3 для взаимодействия с базами данных SQLite. Стоит отметить, что есть и другие модули Python, которые вы можете использовать для взаимодействия с SQLite. Однако SQLite3 прост и поставляется в комплекте с Python.
Рассмотрим приведенный ниже сценарий для подключения к базе данных SQLite.
import sqlite3 from sqlite3 import Error def connect_db(db_path): connection = None try: connection = sqlite3.connect(db_path) print("База данных успешно подключена") except Error as e: print(f"Произошла ошибка: {e}") return connection connect_db("/home/user/Desktop/demo.sqlite")
Начнем с импорта модулей SQLite и Error.
В строке 3 мы создаем функцию connect_db(), которая принимает в качестве аргумента путь к базе данных.
Следующая часть включает блок попытки/ошибки. Первая часть принимает в качестве аргумента путь к базе данных и устанавливает соединение. Обратите внимание: в SQLite, если указанная база данных не существует, она создается автоматически.
Блок ошибок пытается перехватить исключения и распечатать их пользователю.
В последней строке мы вызываем функцию connect_db и передаем путь к базе данных, которую хотим использовать или создать.
sqlite3.connect(“:memory”)
В SQLite мы можем использовать оболочку SQL для создания таблиц с помощью запроса CREATE TABLE. Общий синтаксис такой:
CREATE TABLE database_name.table_name ( column_name datatype PRIMARY KEY(column(s), column2_name datatype, … columnN_name datatype, );
Мы не будем углубляться в создание таблиц с использованием оболочки SQLite, поскольку наша основная задача — Python. Чтобы узнать больше, ознакомьтесь с документацией по SQL из приведенного ниже ресурса:
https://docs.microsoft.com/en-us/sql/?view=sql-server-ver15
Сейчас :
Чтобы использовать модули Python и sqlite3 для создания таблиц базы данных, нам нужно использовать объект курсора и выполнять функции SQL-запросов.
Рассмотрим код ниже:
import sqlite3 from sqlite3 import Error def connect_db(db_path): connection = None try: connection = sqlite3.connect(db_path) print("База данных успешно подключена") except Error as e: print(f"Произошла ошибка: {e}") return connection def run_query(connection, sql_query): cursor = connection.cursor() try: cursor.execute(sql_query) connection.commit() print("SQL - Запрос успешно выполнился………………[OK]") except Error as e: print(f" Ошибка запроса……{e}") query = """ CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, year INTGER, genre TEXT, country TEXT ); """ run_query(connection=connect_db("/home/user/Desktop/sql.sqlite"), sql_query=query)
Давайте теперь обсудим, что делает приведенный выше код — найдите первую функцию, описанную выше (см.).
Во второй функции create мы передаем соединение и запрос для выполнения в качестве параметров.
Следующие строки создают объект курсора, который мы будем использовать для вызова метода execute.
Как упоминалось выше, следующие строки вызывают объект курсора для выполнения метода и вызывают передачу запроса в качестве параметра. Блок также выводит сообщение об успешном выполнении запроса.
После успешного выполнения запроса мы говорим SQLite использовать метод фиксации для сохранения изменений в базе данных.
Блок except перехватывает исключения и выводит пользователю сообщение об ошибке.
Наконец, мы создаем запрос для выполнения с использованием простого синтаксиса SQLite.
Чтобы добавить данные в базу данных SQLite, мы можем погрузиться в функцию run_query(), которую мы использовали для создания, поскольку она может выполнять любой запрос SQLite, который мы ей передаем. Однако мы используем запрос INSERT INTO для добавления данных в таблицу.
Рассмотрим блок ниже:
add_users = """ INSERT INTO users (id, name, year, genre, country) VALUES ("101", "AndreyEx", "2021", "IT", "Russia"), ("201", "Destroyer", "2017", "IT", "Russia"), ("301", "Annihilator", "2016", "IT", "Russia"); """ run_query(connection=connect_db("/home/user/Desktop/sql.sqlite"), sql_query=add_users)
Теперь нам нужно вызвать функцию run_query и добавить передачу запроса add_users для вставки данных в таблицу users. Убедитесь, что таблица, в которую вы вставляете данные, существует, чтобы избежать ошибки.
Вы также можете использовать функцию run_query() для удаления записей из указанной таблицы. Все, что вам нужно, это установить запрос как DELETE FROM.
Рассмотрим следующий подзапрос:
remove = "DELETE FROM users WHERE name = 'AndreyEx'" run_query(connection=connect_db("/home/user/Deskop/sql.sqlite"), sql_query=remove)
Вышеупомянутый запрос удаляет «AndreyEx» из таблицы users.
В этой статье вы научились использовать Python для доступа к базам данных SQLite и взаимодействия с ними.
Из того, что вы узнали из этой статьи, теперь вы можете создавать функции, подключаться к базам данных SQLite, создавать таблицы, вставлять данные и удалять их. Хотя это руководство для начинающих по работе с SQLite в Python, оно должно помочь вам начать изучение других технологий, таких как SQLAlchemy и т. д.