Мы можем взаимодействовать с базами данных, используя любой язык программирования, или мы можем использовать программу, которая позволяет нам взаимодействовать с базой данных с помощью графического интерфейса. В этой статье мы обсудим базы данных и покажем, как взаимодействовать с ними с помощью языка программирования Python.
- Реляционные базы данных (SQL)
- Нереляционные базы данных (NoSQL)
- Выполнение операций CRUD в MySQL
- Установка драйвера MySQL для Python
- Создание базы данных
- Создание таблицы
- Вставка строк в таблицу
- Выбор строк из таблицы
- Обновление строки
- Удаление строки
- Удаление таблицы
- Выполнение операций CRUD в MongoDB
- Создание базы данных
- Создание коллекции
- Вставка документа
- Получение документов
- Обновление документов
- Удаление документа
- Удаление коллекции
- Заключение
Реляционные базы данных (SQL)
Реляционные базы данных (SQL) отличаются от нереляционных баз данных (NoSQL) схемой. Схема — это шаблон, который определяет структуру данных, которые вы собираетесь хранить. В реляционных базах данных мы создаем таблицы для хранения данных. Схема таблицы определяется при создании таблицы. Например, если мы хотим хранить данные о студентах в реляционной базе данных, мы создадим таблицу студентов и определим схему таблицы, которая может включать имя, регистрационный номер, оценку и т. Д. Каждого студента. После создания схемы мы будем хранить данные в строках таблицы. Важно отметить, что мы не можем хранить данные, которые не определены в схеме. В этом примере оценка, полученная студентом за экзамен, не может быть сохранена в таблице, потому что мы не определили столбец для этих данных в схеме.
В следующий список входят некоторые популярные реляционные базы данных:
- MariaDB
- MySQL
- SQL Server
- PostgreSQL
- Oracle
Нереляционные базы данных (NoSQL)
Как обсуждалось выше, нереляционные базы данных не имеют определенной схемы. Нереляционные базы данных имеют коллекции вместо таблиц, и эти коллекции содержат документы, эквивалентные строкам в реляционной базе данных. Например, если мы хотим создать нереляционную базу данных для хранения данных студентов, мы можем создать коллекцию пользователей, и в этой коллекции мы будем хранить документ для каждого студента. Эти документы не имеют определенной схемы, и вы можете хранить все, что угодно для каждого студента.
Выполнение операций CRUD в MySQL
Теперь мы покажем вам, как для взаимодействия с MySQL с использованием Python.
Установка драйвера MySQL для Python
Чтобы взаимодействовать с MySQL с помощью Python, нам сначала нужно установить драйвер MySQL в Python.
или
Создание базы данных
Перед созданием базы данных мы необходимо подключиться к серверу MySQL с помощью Python. Модуль mysql.connector предлагает метод connect (), который помогает установить соединение с MySQL с использованием Python.
//Замените на ваш собственный IP и учетные данные сервера
>>> sql = mysql.connector.connect (
… host = ‘localhost’,
… user = ‘root’,
… password = ‘12345’
…)
>>> print (sql)
Это сообщение показывает, что мы успешно создали соединение с базой данных MySQL с помощью Python. Теперь мы запустим SQL-запрос на сервере MySQL, используя метод execute () из модуля mysql.connector.
>>> query = ‘CREATE DATABASE demo_db’
>>> cursor.execute (query)
Приведенный выше код создаст базу данных с именем demo_db в MySQL.
Создание таблицы
Теперь, когда мы создали базу данных, мы создадим новую таблицу с именем student. Чтобы создать таблицу, нам нужно подключиться к базе данных.
… host = ‘localhost ‘,
… user =’ root ‘,
… password =’ 12345 ‘,
… database =’ demo_db ‘
.. .)
После подключения к базе данных мы будем использовать метод execute () для выполнения запроса SQL для создания таблицы со схемой.
>>> cursor.execute (query);
Приведенная выше команда создаст таблицу с именем student в базе данных demo_db; мы можем вставить в таблицу только имя, идентификатор, класс и дату рождения, как определено в схеме.
Вставка строк в таблицу
Теперь, когда у нас есть создал таблицу, мы вставим в эту таблицу ученика. Мы создадим запрос, а затем воспользуемся методом execute () для выполнения запроса на сервере MySQL с использованием Python.
>>> cursor.execute (query)
>>> sql_db.commit ( )
Этот запрос добавит учащегося с данными, определенными в запросе, в таблицу. Таким же образом мы можем добавить дополнительных студентов в таблицу.
ПРИМЕЧАНИЕ. Изменения будут применены к базе данных, только если вы запустите sql_db.commit () после применения изменений.
Выбор строк из таблицы
Оператор SELECT в MySQL используется для возврата данных из таблицы. Мы воспользуемся методом execute () для выполнения запроса, а затем воспользуемся методом fetchall () для получения списка всех студентов. Затем мы можем использовать цикл for для отображения всех студентов
>>> cursor.execute ( query)
>>> result = cursor.fetchall ()
>>> для x в результате:
… print (x)
(‘Джон ‘, 1, 3, дата и время. date (2020, 7, 4))
Мы видим, что возвращаются данные только для одного студента, так как у нас есть только один студент в таблице. Мы можем использовать оператор WHERE в MySQL с оператором SELECT, чтобы указать ограничения. Например, если мы хотим вернуть учеников только 4 класса, мы можем использовать следующий запрос:
>>> cursor.execute (query)
>>> result = cursor.fetchall ()
>>> для x в результате:
.. . Print (x)
Приведенный выше код будет получать только учащихся 4 класса.
Обновление строки
В этом разделе мы покажем вам, как обновить данные учащихся в таблице MySQL с помощью Python. Мы будем использовать оператор UPDATE с операторами WHERE и SET в MySQL для обновления данных конкретных студентов. Оператор WHERE используется для определения, какие строки будут обновлены, а оператор SET используется для определения значений, используемых для обновления.
>>> cursor.execute (query)
>>> sql_db.commit ()
Теперь мы попытаемся прочитать данные об учениках из таблицы с помощью оператора SELECT.
>>> cursor.execute (query)
>>> для x в курсоре:
… print (x)
(‘Mark’, 4, 4, datetime.date (2020, 7, 15))
Теперь мы видим, что имя студента с идентификатором 4 было изменено на Mark.
Удаление строки
Мы можем удалить строку из таблицы, применив оператор DELETE в MySQL с использованием Python. Мы будем использовать оператор DELETE с оператором WHERE для удаления определенных студентов из таблицы.
>>> cursor.execute (query)
>>> sql_db.commit ()
Теперь мы можем вернуть всех студентов из таблицы, используя SELECT оператор.
>>> 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 ().
>>> query = ‘DROP TABLE student’
>>> cursor.execute (query)
Приведенный выше код удалит таблицу с именем student при выполнении в Python.
На этом мы завершаем обсуждение баз данных SQL. Мы показали вам, как применять различные запросы к базе данных MySQL с помощью Python. Затем мы применим операции CRUD к базе данных NoSQL под названием MongoDB
Выполнение операций CRUD в MongoDB
Чтобы взаимодействовать с MongoDB с помощью Python, мы должны сначала установить pymongo, который — это драйвер MongoDB для Python.
или
Создание базы данных
Мы можем подключиться к MongoDB с использованием метода MongoClient () модуля pymongo в MongoDB. Перед выполнением каких-либо действий нам необходимо подключиться к базе данных MongoDB.
>>> client = pymongo.MongoClient (‘mongodb: //localhost: 27017/’)
После подключения к базе данных мы можем выполнить следующую строку для создания новой базы данных с именем demo_db.
Если база данных уже существует, эта команда игнорируется.
Создание коллекции
Теперь, когда мы создали базу данных, мы создадим коллекцию с именем student в базе данных с именем.
>>> client = pymongo.MongoClient (‘mongodb://localhost: 27017/’)
>>> db = client [‘demo_db’]
>>> col = db [‘student’]
ПРИМЕЧАНИЕ. MongoDB не создает коллекцию, пока вы не введете в нее данные. Поэтому, если вы попытаетесь получить доступ к коллекции после выполнения вышеуказанного кода, вы обнаружите, что в базе данных ничего нет.
MySQL без подкладки, нам не нужно определять схему когда мы создаем новую коллекцию, поскольку MongoDB не является реляционной базой данных.
Вставка документа
После создания коллекции мы можем вставить документ в коллекцию . Сначала мы должны определить словарь, а затем мы можем использовать метод insert_one () для вставки данных, определенных в словаре, в коллекцию.
ПРИМЕЧАНИЕ. MongoDB автоматически создает уникальный _id для каждого документа; следовательно, нам не нужно указывать идентификатор.
… «name»: «John» ,
… «оценка»: 3,
… «dob»: «2020-04-03»
…}
>> > result = col.insert_one (data)
В приведенный выше документ мы вставили name, grade и dob. Теперь мы вставим документ в коллекцию студентов, в которой есть поле для возраста.
… «name»: «Оценка»,
… «оценка»: 4,
… «dob»: «2020-04-09»,
… «возраст»: 8
…}
>>> result = col.insert_one (data)
Мы видим, что эта команда не выдает ошибку. Поскольку MongoDB не является реляционной базой данных, мы можем добавить в документ любую информацию, которую захотим.
Получение документов
В этом разделе мы будем использовать команду find ( ) и find_one () для получения данных из базы данных. Метод find () принимает два аргумента: первый используется для фильтрации документов, а второй используется для определения полей документа, который мы хотим вернуть. Например, если мы хотим получить идентификатор ‘John’, мы можем выполнить следующий запрос:
>>> для x в результате:
… print (x)
{‘_ id’: ObjectId (‘5f8f0514cb12c01f7420656e’)}
В качестве альтернативы мы можем получить все документы из коллекции, используя следующий запрос:
>>> для 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 () для обновления документов в коллекции. Оба метода принимают два аргумента: первый определяет, какой документ изменить, а второй определяет новые значения. Теперь мы изменим оценку студента «Оценка».
>>> 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 ( ), для удаления документов. Оба метода принимают аргумент, который выбирает документ для удаления. С помощью следующего кода мы удалим студента с именем «Джон».
>> > 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 (). Следующий код удалит студентов.
>>> client = pymongo.MongoClient (‘mongodb://localhost: 27017/’ )
>>> db = client [‘demo_db’]
>>> col = db [‘студенты’]
>>> col.drop ()
Заключение
Знание баз данных необходимо, если вы хотите создать веб-приложение. Почти на каждом языке программирования есть фреймворки и библиотеки для внутренней веб-разработки. Python можно использовать в серверной веб-разработке, поэтому мы можем взаимодействовать с базами данных, используя Python, работая с внутренними структурами Python. В этой статье мы показали вам, как взаимодействовать с базами данных MongoDB и MySQL, используя простые операции CRUD, написанные на Python.