Статьи

Обработка базы данных в Python

В век информации, в котором мы живем, мы можем видеть, сколько данных обменивается миром. Мы в основном создаем, храним и извлекаем данные, экстенсивно! Должен быть способ справиться со всем этим — его нельзя распространить повсеместно без какого-либо управления, верно? Здесь идет Система управления базами данных (СУБД).

СУБД — это программная система, которая позволяет создавать, хранить, изменять, извлекать и иным образом обрабатывать данные из базы данных. Такие системы также различаются по размеру: от небольших систем, которые просто работают на вашем персональном компьютере, до более крупных, работающих на мэйнфреймах.

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

Давайте начнем!

Как уже упоминалось выше, Python может взаимодействовать с базами данных. Но как это сделать? Python использует так называемый API баз данных Python для взаимодействия с базами данных. Этот API позволяет нам программировать различные системы управления базами данных (СУБД). Однако для этих разных СУБД процесс, выполняемый на уровне кода, одинаков, а именно:

  1. Установите соединение с выбранной вами базой данных.
  2. Создать курсор для связи с данными.
  3. Управлять данными с помощью SQL ( взаимодействовать ).
  4. Скажите соединению либо применить манипуляции SQL к данным и сделать их постоянными ( фиксация ), либо попросить его прервать эти манипуляции ( откат ), вернув таким образом данные в состояние до того, как произошли взаимодействия.
  5. Закройте соединение с базой данных.

SQLite — это полнофункциональный, автономный с открытым исходным кодом (требует небольшой поддержки со стороны внешних библиотек), безсерверный (не требует сервера для запуска ядра СУБД и является локально хранимой базой данных), нулевая конфигурация (ничего для установки и настройки), облегченной системы управления базами данных на основе SQL (запросы SQL могут выполняться на таблицах SQLite) и использует один файл данных для хранения данных.

Приятно знать, что SQLite используется крупными компаниями, такими как Google, Apple, Microsoft и т. Д., Что делает его очень надежным. В этом уроке мы будем использовать SQLite для взаимодействия с базой данных, а более конкретно будем работать с модулем sqlite3 в Python.

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

Этот шаг достигается следующим образом:

conn = sqlite3.connect('company.db')

Как упомянуто в документации sqlite3 :

Чтобы использовать модуль, вы должны сначала создать объект Connection который представляет базу данных.

В приведенном выше коде обратите внимание, что данные будут храниться в файле company.db .

Следующим шагом в работе с базой данных является создание курсора следующим образом:

curs = conn.cursor()

После соединения с базой данных и создания курсора мы готовы к работе (взаимодействию) с данными. Другими словами, теперь мы можем запускать команды SQL в базе данных company.db .

Допустим, мы хотим создать новую таблицу employee в нашей базе данных company . В этом случае нам нужно запустить команду SQL. Для этого мы будем использовать метод execute() модуля sqlite3 . Таким образом, выражение Python будет выглядеть следующим образом:

curs.execute('create table employee(name, age)')

Этот оператор запускает команду SQL, которая создает таблицу с именем employee , с двумя столбцами (полями) name и age .

Теперь мы можем запустить новую команду SQL, которая вставит данные в таблицу, следующим образом:

curs.execute("insert into employee values ('Ali', 28)")

Вы также можете вставить несколько значений одновременно, как показано ниже:

values = [('Brad',54), ('Ross', 34), ('Muhammad', 28), ('Bilal', 44)]

В этом случае вместо использования метода execute() мы будем использовать метод executemany() для выполнения нескольких указанных выше значений.

curs.executemany('insert into employee values(?,?)', values)

На этом этапе мы хотели бы применить (зафиксировать) изменения, которые мы сделали на предыдущем шаге. Это просто делается следующим образом:

conn.commit()

После выполнения наших манипуляций и фиксации изменений последним шагом будет закрытие соединения:

conn.close()

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

1
2
3
4
5
6
7
8
9
import sqlite3
conn = sqlite3.connect(‘company.db’)
curs = conn.cursor()
curs.execute(‘create table employee (name, age)’)
curs.execute(«insert into employee values (‘Ali’, 28)»)
values = [(‘Brad’,54), (‘Ross’, 34), (‘Muhammad’, 28), (‘Bilal’, 44)]
curs.executemany(‘insert into employee values(?,?)’, values)
conn.commit()
conn.close()

Если вы запустите скрипт, вы должны получить файл с именем company.db в вашем текущем каталоге. Загрузите этот файл, так как мы будем использовать его на следующем шаге.

Создав базу данных, таблицу и добавив некоторые данные, давайте посмотрим, что находится внутри company.db (файл, который вы скачали в предыдущем разделе). Для этого мы будем использовать хороший инструмент: DB Browser для SQLite . Идите вперед и загрузите инструмент на свой компьютер. После того, как вы откроете программу, вы должны получить экран, который выглядит следующим образом:

Браузер БД для домашнего экрана SQLite

Откройте базу данных с помощью кнопки « Открыть базу данных» вверху, в этом случае вы должны получить структуру базы данных следующим образом:

Браузер БД для экрана структуры базы данных SQLite

Обратите внимание, что у нас есть список employee , с двумя полями name и age .

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

Браузер БД для SQLite Вкладка «Обзор данных»

Итак, как вы можете видеть, база данных ( company ) и таблица ( employee ) были созданы, и данные были успешно добавлены в таблицу.

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