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

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

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

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

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

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

  • MariaDB
  • MySQL
  • SQL Server
  • PostgreSQL
  • Oracle

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

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

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

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

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

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

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

или

[email protected]: ~ $ sudo pip install mysql-connector-python

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

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

>>> import mysql. коннектор
//Замените на ваш собственный IP и учетные данные сервера
>>> sql = mysql.connector.connect (
… host = ‘localhost’,
… user = ‘root’,
… password = ‘12345’
…)
>>> print (sql)

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

>>> cursor = sql.cursor ()
>>> query = ‘CREATE DATABASE demo_db’
>>> cursor.execute (query)

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

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

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

>>> sql_db = mysql.connector.connect (
… host = ‘localhost ‘,
… user =’ root ‘,
… password =’ ​​12345 ‘,
… database =’ demo_db ‘
.. .)

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

>>> query = «СОЗДАТЬ ТАБЛИЦУ студентов (имя VARCHAR (64), id INT, оценка INT, dob DATE)»;
>>> cursor.execute (query);

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

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

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

>>> query = ‘INSERT INTO student (name, id , grade, dob) VALUES («Джон», 1, 3, «2020-7-04») ‘
>>> cursor.execute (query)
>>> sql_db.commit ( )

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

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

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

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

>>> query = ‘SELECT * FROM student’
>>> cursor.execute ( query)
>>> result = cursor.fetchall ()
>>> для x в результате:
… print (x)
(‘Джон ‘, 1, 3, дата и время. date (2020, 7, 4))

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

>>> query = ‘SELECT * FROM student WHERE grade = 4 ‘
>>> cursor.execute (query)
>>> result = cursor.fetchall ()
>>> для x в результате:
.. . Print (x)

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

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

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

>>> query = ‘UPDATE student SET name = «Mark» WHERE id = 4 ‘
>>> cursor.execute (query)
>>> sql_db.commit ()

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

>>> query = ‘SELECT * FROM student WHERE id = 4’
>>> cursor.execute (query)
>>> для x в курсоре:
… print (x)
(‘Mark’, 4, 4, datetime.date (2020, 7, 15))

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

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

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

>>> query = ‘DELETE FROM student WHERE id = 2’
>>> cursor.execute (query)
>>> sql_db.commit ()

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

>>> query = ‘SELECT * FROM student’
>>> cursor.execute (query)
>>> для x в курсоре:
… print (x)
(‘Джон’, 1, 3, datetime.date (2020, 7, 4))
(‘Джон’ , 3, 3, datetime.date (2020, 7, 8))
(‘Отметить’, 4, 4, datetime.date (2020, 7, 15))

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

Удаление таблицы

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

>>> cursor = sql_db.cursor ()
>>> query = ‘DROP TABLE student’
>>> cursor.execute (query)

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

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

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

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

[email protected]: ~ $ sudo pip install pymongo

или

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

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

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

>>> import pymongo
>>> client = pymongo.MongoClient (‘mongodb: //localhost: 27017/’)

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

>>> db = client [‘demo_db’]

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

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

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

>>> import pymongo
>>> client = pymongo.MongoClient (‘mongodb://localhost: 27017/’)
>>> db = client [‘demo_db’]
>>> col = db [‘student’]

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

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

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

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

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

>>> data = {
… «name»: «John» ,
… «оценка»: 3,
… «dob»: «2020-04-03»
…}
>> > result = col.insert_one (data)

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

>>> data = {
… «name»: «Оценка»,
… «оценка»: 4,
… «dob»: «2020-04-09»,
… «возраст»: 8
…}
>>> result = col.insert_one (data)

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

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

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

>>> result = col.find ({«name» : «John»}, {«_id»: 1})
>>> для x в результате:
… print (x)
{‘_ id’: ObjectId (‘5f8f0514cb12c01f7420656e’)}

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

>>> result = col.find ()
>>> для x в результате:
… print (x)
{‘_ id’: ObjectId (‘5f8f0514cb12c01f7420656e’ ), ‘name’: ‘John’, ‘grade’: 3, ‘dob’: ‘2020-04-03’}
{‘_ id’: ObjectId (‘5f8f061ccb12c01f7420656f’), ‘name’: ‘ Отметка ‘,’ оценка ‘: 4,’ dob ‘:’ 2020-04-09 ‘,’ age ‘: 8}

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

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

>>> query = {«name»: «Mark»}
>>> value = {«$ set»: {«grade»: 5}}
>>> col.update_one (query, value)

>>> для x в столбце. find ():
… print (x)
{‘_ id’: ObjectId (‘5f8f0514cb12c01f7420656e’), ‘name’: ‘John’, ‘grade’: 3, ‘dob’ : ‘2020-04-03’}
{‘_ id’: ObjectId (‘5f8f061ccb12c01f7420656f’), ‘name’: ‘Отметить’, ‘оценка’: 5, ‘dob’: ‘2020-04-09 ‘,’ age ‘: 8}

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

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

>>> query = {«name»: «John»}
>> > col.delete_one (query)

>>> для x в col.find ():
… print (x)
{‘_ id’ : ObjectId (‘5f8f061ccb12c01f7420656f’), ‘name’: ‘Отметка’, ‘id’: 2, ‘grade’: 5, ‘dob’: ‘2020-04-09’, ‘age’: 8}

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

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

>>> import pymongo
>>> client = pymongo.MongoClient (‘mongodb://localhost: 27017/’ )
>>> db = client [‘demo_db’]
>>> col = db [‘студенты’]
>>> col.drop ()

Заключение

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

Оцените статью
nanomode.ru
Добавить комментарий