Поиск по сайту:
Чрезмерная скромность есть не что иное, как скрытая гордость (А. Шенье).

Как получить доступ к SQLite из Python

08.04.2021
Как получить доступ к SQLite из Python

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

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

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

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

Начнем с установки SQLite:

 

Установка SQLite и Python

В зависимости от вашего дистрибутива Linux вы можете загрузить архив SQLite с https://www.sqlite.org/download.html или использовать диспетчер пакетов.

Чтобы установить его в Debian:

sudo apt-get update

sudo apt-get install sqlite -y

Затем у вас должна быть установлена ​​последняя версия Python3. По умолчанию Python должен быть предварительно установлен в вашем дистрибутиве.

 

Оболочка SQLite

Методом по умолчанию для взаимодействия с базами данных 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.

Читать  Как установить Python 3.8 на CentOS 8

Мы настоятельно рекомендуем вам поэкспериментировать с оболочкой 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 и передаем путь к базе данных, которую хотим использовать или создать.

Примечание
Если вы хотите создать базу данных памяти вместо диска, вы можете указать: memory в объекте подключения.
sqlite3.connect(“:memory”)

SQLite создать таблицу

В 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 из приведенного ниже ресурса:

Читать  Атака усечением в 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

Чтобы добавить данные в базу данных SQLite, мы можем погрузиться в функцию run_query(), которую мы использовали для создания, поскольку она может выполнять любой запрос SQLite, который мы ей передаем. Однако мы используем запрос INSERT INTO для добавления данных в таблицу.

Читать  Повышение эффективности SQL-Запросов в MySQL: Советы по настройке

Рассмотрим блок ниже:

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. Убедитесь, что таблица, в которую вы вставляете данные, существует, чтобы избежать ошибки.

 

SQLite Удалить записи

Вы также можете использовать функцию 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 и т. д.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Чтобы выполнить автоматизированную задачу на удаленном хосте с помощью Ansible,…

Спасибо!

Теперь редакторы в курсе.