Python

CRUD-операции с базами данных SQL и NoSQL с использованием Python

CRUD-операции с базами данных SQL и NoSQL с использованием Python
Существует два основных типа баз данных, которые можно использовать с приложением: реляционные базы данных (SQL) и нереляционные базы данных (NoSQL). Оба широко используются, но выбор одного из них зависит от типа данных, которые будут храниться. С базами данных можно выполнять четыре основных операции: создание, чтение, обновление и удаление (CRUD).

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

Реляционные базы данных (SQL)

Реляционные базы данных (SQL) отличаются от нереляционных баз данных (NoSQL) схемой. Схема - это шаблон, который определяет структуру данных, которые вы собираетесь хранить. В реляционных базах данных мы создаем таблицы для хранения данных. Схема таблицы определяется при создании таблицы. Например, если мы хотим хранить данные о студентах в реляционной базе данных, мы создадим таблицу студентов и определим схему таблицы, которая может включать имя, регистрационный номер, оценку и т. Д. каждого студента. После создания схемы мы будем хранить данные в строках таблицы. Важно отметить, что мы не можем хранить данные, которые не определены в схеме. В этом примере оценку, полученную студентом на экзамене, нельзя сохранить в таблице, потому что мы не определили столбец для этих данных в схеме.

В следующий список включены некоторые популярные реляционные базы данных:

Нереляционные базы данных (NoSQL)

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

Выполнение операций CRUD в MySQL

Теперь мы покажем вам, как взаимодействовать с MySQL с помощью Python.

Установка драйвера MySQL для Python

Чтобы взаимодействовать с MySQL с помощью Python, нам сначала нужно установить драйвер MySQL в Python.

[электронная почта защищена]: ~ $ sudo pip3 установить mysql-connector-python

или же

[электронная почта защищена]: ~ $ sudo pip install mysql-connector-python

Создание базы данных

Перед созданием базы данных нам необходимо подключиться к серверу MySQL с помощью Python. MySQL.Модуль Connector предлагает метод connect (), который помогает установить соединение с MySQL с помощью Python.

>>> импортировать mysql.соединитель
// Замените на свой собственный IP-адрес и учетные данные сервера
>>> sql = mysql.соединитель.соединять(
… Host = 'localhost',
… Пользователь = 'корень',
… Пароль = '12345'
…)
>>> печать (sql)

Это сообщение показывает, что мы успешно создали соединение с базой данных MySQL с помощью Python. Теперь мы запустим SQL-запрос на сервере MySQL, используя метод execute () из mysql.соединительный модуль.

>>> курсор = sql.курсор()
>>> query = 'СОЗДАТЬ БАЗУ ДАННЫХ demo_db'
>>> курсор.выполнить (запрос)

Приведенный выше код создаст базу данных с именем demo_db в MySQL.

Создание таблицы

Теперь, когда мы создали базу данных, мы создадим новую таблицу с именем student. Чтобы создать таблицу, нам нужно подключиться к базе данных.

>>> sql_db = mysql.соединитель.соединять(
… Host = 'localhost',
… Пользователь = 'корень',
… Пароль = '12345',
… База данных = 'demo_db'
…)

После подключения к базе данных мы будем использовать метод execute () для выполнения SQL-запроса для создания таблицы со схемой.

>>> query = "СОЗДАТЬ ТАБЛИЦУ студентов (имя VARCHAR (64), id INT, оценка INT, dob DATE)";
>>> курсор.выполнить (запрос);

Приведенная выше команда создаст таблицу с именем student в базе данных demo_db; мы можем вставить в таблицу только имя, идентификатор, класс и дату рождения, как определено в схеме.

Вставка строк в таблицу

Теперь, когда мы создали таблицу, мы вставим в нее учащегося. Мы создадим запрос, а затем воспользуемся методом execute () для выполнения запроса на сервере MySQL с использованием Python.

>>> query = 'ВСТАВИТЬ учащихся (имя, идентификатор, оценка, степень подготовки) ЗНАЧЕНИЯ («Джон», 1, 3, «2020-7-04») »
>>> курсор.выполнить (запрос)
>>> sql_db.совершить()

Этот запрос добавит студента с данными, определенными в запросе, в таблицу. Таким же образом мы можем добавить дополнительных студентов в таблицу.

ПРИМЕЧАНИЕ. Изменения будут применены к базе данных, только если вы запустите sql_db.commit () после применения изменений.

Выбор строк из таблицы

Оператор SELECT в MySQL используется для возврата данных из таблицы. Мы будем использовать метод execute () для выполнения запроса, а затем мы будем использовать метод fetchall (), чтобы получить список всех студентов. Затем мы можем использовать цикл for для отображения всех студентов

>>> query = 'ВЫБРАТЬ * ИЗ учеников'
>>> курсор.выполнить (запрос)
>>> результат = курсор.fetchall ()
>>> для x в результате:
… Print (x)
('Джон', 1, 3, datetime.дата (2020, 7, 4))

Мы видим, что возвращаются данные только для одного студента, так как у нас есть только один студент в таблице. Мы можем использовать оператор WHERE в MySQL с оператором SELECT, чтобы указать ограничения. Например, если мы хотим вернуть только учеников 4 класса, мы можем использовать следующий запрос:

>>> query = 'ВЫБРАТЬ * ИЗ учащихся, ГДЕ оценка = 4'
>>> курсор.выполнить (запрос)
>>> результат = курсор.fetchall ()
>>> для x в результате:
… Print (x)

Приведенный выше код получит только учащихся 4 класса.

Обновление строки

В этом разделе мы покажем вам, как обновить данные учащихся в таблице MySQL с помощью Python. Мы будем использовать оператор UPDATE с операторами WHERE и SET в MySQL для обновления данных конкретных студентов. Оператор WHERE используется для определения, какие строки будут обновлены, а оператор SET используется для определения значений, используемых для обновления.

>>> query = 'ОБНОВИТЬ НАБОР студентов name = "Mark" WHERE id = 4'
>>> курсор.выполнить (запрос)
>>> sql_db.совершить()

Теперь мы попытаемся прочитать данные об учениках из таблицы с помощью оператора SELECT.

>>> query = 'ВЫБРАТЬ * ИЗ студентов, ГДЕ id = 4'
>>> курсор.выполнить (запрос)
>>> для x в курсоре:
… Print (x)
('Отметка', 4, 4, дата и время.дата (2020, 7, 15))

Теперь мы видим, что имя студента с id 4 было изменено на Mark.

Удаление строки

Мы можем удалить строку из таблицы, применив оператор DELETE в MySQL, используя Python. Мы будем использовать оператор DELETE с оператором WHERE для удаления определенных студентов из таблицы.

>>> query = 'УДАЛИТЬ ОТ студентов, ГДЕ id = 2'
>>> курсор.выполнить (запрос)
>>> sql_db.совершить()

Теперь мы можем вернуть всех студентов из таблицы с помощью оператора SELECT.

>>> query = 'ВЫБРАТЬ * ИЗ учеников'
>>> курсор.выполнить (запрос)
>>> для x в курсоре:
… Print (x)
('Джон', 1, 3, datetime.дата (2020, 7, 4))
('Джон', 3, 3, datetime.дата (2020, 7, 8))
('Отметка', 4, 4, дата и время.дата (2020, 7, 15))

Мы видим, что в таблице нет студента с идентификатором 2, так как мы удалили студента из таблицы.

Отбрасывание стола

MySQL.соединительный модуль также можно использовать для сброса стола. Мы можем выполнить оператор DROP в MySQL с помощью метода execute ().

>>> курсор = sql_db.курсор()
>>> query = 'УДАЛИТЬ ТАБЛИЦУ студентов'
>>> курсор.выполнить (запрос)

Приведенный выше код удалит таблицу с именем student при выполнении на Python.

На этом мы завершаем обсуждение баз данных SQL. Мы показали вам, как применять различные запросы к базе данных MySQL с помощью Python. Затем мы применим операции CRUD к базе данных NoSQL под названием MongoDB

Выполнение операций CRUD в MongoDB

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

[электронная почта защищена]: ~ $ sudo pip install pymongo

или же

[электронная почта защищена]: ~ $ sudo pip3 install pymongo

Создание базы данных

Мы можем подключиться к MongoDB с помощью метода MongoClient () модуля pymongo в MongoDB. Перед выполнением каких-либо действий нам необходимо подключиться к базе данных MongoDB.

>>> импорт пимонго
>>> клиент = пимонго.MongoClient ('mongodb: // локальный: 27017 /')

После подключения к базе данных мы можем выполнить следующую строку, чтобы создать новую базу данных с именем demo_db.

>>> db = client ['demo_db']

Если база данных уже существует, то эта команда игнорируется.

Создание коллекции

Теперь, когда мы создали базу данных, мы создадим коллекцию с именем student в базе данных с именем.

>>> импорт пимонго
>>> клиент = пимонго.MongoClient ('mongodb: // локальный: 27017 /')
>>> db = клиент ['demo_db']
>>> col = db ['студенты']

ПРИМЕЧАНИЕ: MongoDB не создает коллекцию, пока вы не введете в нее данные. Поэтому, если вы попытаетесь получить доступ к коллекции после выполнения вышеуказанного кода, вы обнаружите, что в базе данных ничего нет.

MySQL без подкладки, нам не нужно определять схему при создании новой коллекции, поскольку MongoDB - это нереляционная база данных.

Вставка документа

После создания коллекции мы можем вставить документ внутрь коллекции. Сначала мы должны определить словарь, а затем мы можем использовать метод insert_one () для вставки данных, определенных в словаре, в коллекцию.

ПРИМЕЧАНИЕ. MongoDB автоматически создает уникальный _id для каждого документа; следовательно, нам не нужно указывать идентификатор.

>>> data =
… "Имя": "Джон",
… "класс 3,
… «Доб»: «2020-04-03»

>>> результат = col.insert_one (данные)

В приведенном выше документе мы вставили имя, оценку и степень допуска. Теперь мы вставим документ в коллекцию студентов, в котором есть поле для возраста.

>>> data =
… "Имя": "Отметить",
… «Оценка»: 4,
… «Доб»: «2020-04-09»,
… «Возраст»: 8

>>> результат = col.insert_one (данные)

Мы видим, что эта команда не выдает ошибку. Поскольку MongoDB - это нереляционная база данных, мы можем добавить в документ любую информацию, которую захотим.

Получение документов

В этом разделе мы будем использовать методы find () и find_one () для получения данных из базы данных. Метод find () принимает два аргумента: первый используется для фильтрации документов, а второй используется для определения полей документа, которые мы хотим вернуть. Например, если мы хотим получить идентификатор «Джон», мы можем выполнить следующий запрос:

>>> результат = col.find ("name": "John", "_id": 1)
>>> для x в результате:
… Print (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

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

>>> результат = col.найти()
>>> для x в результате:
… Print (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'Джон', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Оценка', 'grade': 4, 'dob': '2020-04-09', 'age': 8

Обновление документов

Модуль pymongo предлагает методы update_one () и update_many () для обновления документов в коллекции. Оба метода принимают два аргумента: первый определяет, какой документ изменить, а второй определяет новые значения. Теперь мы изменим оценку ученика «Оценка».

>>> query = "name": "Отметить"
>>> value = "$ set": "grade": 5
>>> col.update_one (запрос, значение)
>>> для x в столбце.найти():
… Print (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'Джон', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 5, 'dob': '2020-04-09', 'age': 8

Удаление документа

Модуль pymongo в Python имеет два метода: i.е., delete_one () и delete_many () для удаления документов. Оба метода принимают аргумент, который выбирает документ для удаления. С помощью следующего кода мы удалим учащегося по имени «Джон».

>>> query = "name": "Джон"
>>> col.delete_one (запрос)
>>> для x в столбце.найти():
… Print (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Удаление коллекции

Мы можем удалить коллекцию в MongoDB, используя метод drop () модуля pymongo в Python. Во-первых, нам нужно подключиться к базе данных; затем мы выбираем базу данных, содержащую коллекцию, которую хотим удалить. После выбора коллекции из базы данных мы можем удалить коллекцию с помощью метода drop (). Следующий код отбросит студентов.

>>> импорт пимонго
>>> клиент = пимонго.MongoClient ('mongodb: // локальный: 27017 /')
>>> db = клиент ['demo_db']
>>> col = db ['студенты']
>>> col.уронить()

Заключение

Знание баз данных необходимо, если вы хотите создать веб-приложение. Почти на каждом языке программирования есть фреймворки и библиотеки для серверной веб-разработки. Python можно использовать в серверной веб-разработке, поэтому мы можем взаимодействовать с базами данных, используя Python, работая с внутренними инфраструктурами Python. В этой статье мы показали вам, как взаимодействовать с базами данных MongoDB и MySQL, используя простые операции CRUD, написанные на Python.

Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...
Как установить Doom и играть в него в Linux
Введение в Doom Серия Doom возникла в 90-х годах после выхода оригинальной Doom. Это мгновенно стал хитом, и с тех пор серия игр получила множество на...