Мы можем взаимодействовать с базами данных, используя любой язык программирования, или мы можем использовать программу, которая позволяет нам взаимодействовать с базой данных с помощью графического интерфейса. В этой статье мы обсудим базы данных и покажем, как с ними взаимодействовать с помощью языка программирования Python.
Реляционные базы данных (SQL)
Реляционные базы данных (SQL) отличаются от нереляционных баз данных (NoSQL) схемой. Схема - это шаблон, который определяет структуру данных, которые вы собираетесь хранить. В реляционных базах данных мы создаем таблицы для хранения данных. Схема таблицы определяется при создании таблицы. Например, если мы хотим хранить данные о студентах в реляционной базе данных, мы создадим таблицу студентов и определим схему таблицы, которая может включать имя, регистрационный номер, оценку и т. Д. каждого студента. После создания схемы мы будем хранить данные в строках таблицы. Важно отметить, что мы не можем хранить данные, которые не определены в схеме. В этом примере оценку, полученную студентом на экзамене, нельзя сохранить в таблице, потому что мы не определили столбец для этих данных в схеме.
В следующий список включены некоторые популярные реляционные базы данных:
- MariaDB
- MySQL
- SQL Server
- PostgreSQL
- Oracle
Нереляционные базы данных (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.