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 встановити mysql-connector-python

Створення бази даних

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

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

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

>>> курсор = sql.курсор ()
>>> query = 'СТВОРИТИ БАЗУ ДАНИХ demo_db'
>>> курсор.виконати (запит)

Наведений вище код створить базу даних з іменем demo_db у MySQL.

Створення таблиці

Тепер, коли ми створили базу даних, ми створимо нову таблицю з назвою студентів. Для створення таблиці нам потрібно підключитися до бази даних.

>>> sql_db = mysql.роз'єм.підключити (
… Host = 'localhost',
… User = 'root',
… Пароль = '12345',
... база даних = 'demo_db'
…)

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

>>> query = "СТВОРИТИ ТАБЛИЦЮ студентів (ім'я VARCHAR (64), ідентифікатор INT, клас INT, dob DATE)";
>>> курсор.виконати (запит);

Вищевказана команда створить таблицю з іменами студентів у базі даних demo_db; ми можемо вставити в таблицю лише ім’я, ідентифікатор, клас та дату народження, як визначено у схемі.

Вставка рядків у таблицю

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

>>> query = 'ВСТАВИТИ У СТУДЕНТИ (ім'я, ідентифікатор, оцінка, доб) ЦІННОСТІ (“Джон”, 1, 3, “2020-7-04”)'
>>> курсор.виконати (запит)
>>> sql_db.commit ()

Цей запит додасть студента з даними, визначеними у запиті, до таблиці. Ми можемо додати додаткових учнів до столу таким же чином.

ПРИМІТКА. Зміни будуть застосовані до бази даних лише у випадку, якщо ви запустили sql_db.commit () після застосування змін.

Вибір рядків із таблиці

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

>>> query = 'SELECT * FROM students'
>>> курсор.виконати (запит)
>>> результат = курсор.fetchall ()
>>> для x у результаті:
… Друк (x)
(`` Іван '', 1, 3, дата і час.дата (2020, 7, 4))

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

>>> query = 'ВИБРАТИ * ВІД студентів, ДЕ оцінка = 4'
>>> курсор.виконати (запит)
>>> результат = курсор.fetchall ()
>>> для x у результаті:
… Друк (x)

Наведений вище код буде доступний лише для учнів 4 класу.

Оновлення рядка

У цьому розділі ми покажемо вам, як оновити дані студентів у таблиці MySQL за допомогою Python. Ми будемо використовувати оператор UPDATE з операторами WHERE та SET у MySQL для оновлення даних конкретних студентів. Оператор WHERE використовується, щоб визначити, які рядки будуть оновлені, а оператор SET - для визначення значень, що використовуються для оновлення.

>>> query = 'ОНОВИТИ студентів SET name = "Позначити" WHERE id = 4'
>>> курсор.виконати (запит)
>>> sql_db.commit ()

Тепер ми спробуємо прочитати дані студента з таблиці за допомогою оператора SELECT.

>>> query = 'SELECT * FROM студентів WHERE id = 4'
>>> курсор.виконати (запит)
>>> для x у курсорі:
… Друк (x)
("Позначити", 4, 4, дата і час.дата (2020, 7, 15))

Тепер ми бачимо, що ім’я студента з ідентифікатором 4 було змінено на Марк.

Видалення рядка

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

>>> query = 'ВИДАЛИТИ ІЗ студентів, ДЕ id = 2'
>>> курсор.виконати (запит)
>>> sql_db.commit ()

Тепер ми можемо повернути всіх учнів із таблиці за допомогою оператора SELECT.

>>> query = 'SELECT * FROM students'
>>> курсор.виконати (запит)
>>> для x у курсорі:
… Друк (x)
(`` Іван '', 1, 3, дата і час.дата (2020, 7, 4))
(`` Іван '', 3, 3, дата-час.дата (2020, 7, 8))
('Позначити', 4, 4, дата-час.дата (2020, 7, 15))

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

Відкидання таблиці

MySQL.Модуль з'єднувача також можна використовувати для скидання таблиці. Ми можемо виконати оператор DROP у MySQL, використовуючи метод execute ().

>>> курсор = sql_db.курсор ()
>>> query = 'ПАДАЙТЕ ТАБЛИЦЮ студентів'
>>> курсор.виконати (запит)

Наведений вище код видалить таблицю з іменами студентів при виконанні в Python.

На цьому наше обговорення баз даних SQL завершується. Ми показали вам, як застосовувати різні запити до бази даних MySQL за допомогою Python. Далі ми застосуємо операції CRUD до бази даних NoSQL під назвою MongoDB

Виконання CRUD-операцій в MongoDB

Щоб взаємодіяти з MongoDB за допомогою Python, спочатку потрібно встановити pymongo, який є драйвером MongoDB для Python.

[захищено електронною поштою]: ~ $ sudo pip встановити pymongo

або

[захищено електронною поштою]: ~ $ sudo pip3 встановити pymongo

Створення бази даних

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

>>> імпорт pymongo
>>> клієнт = pymongo.MongoClient ('mongodb: // localhost: 27017 /')

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

>>> db = клієнт ['demo_db']

Якщо база даних уже існує, ця команда ігнорується.

Створення колекції

Тепер, коли ми створили базу даних, ми створимо колекцію з іменами студентів у базі даних з іменем.

>>> імпорт pymongo
>>> клієнт = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = клієнт ['demo_db']
>>> col = db ['студенти']

ПРИМІТКА. MongoDB не створює колекцію, доки ви не введете в неї дані. Тому, якщо ви спробуєте отримати доступ до колекції після запуску вищевказаного коду, ви виявите, що в базі даних немає нічого.

Не підписаний MySQL, нам не потрібно визначати схему при створенні нової колекції, оскільки MongoDB - це нереляційна база даних.

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

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

ПРИМІТКА: MongoDB автоматично створює унікальний '_id' для кожного документа; тому нам не потрібно вказувати ідентифікатор.

>>> дані =
... "name": "Джон",
... "оцінка": 3,
… "Dob": "2020-04-03"

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

У вищевказаному документі ми вставили ім’я, сорт та доб. Тепер ми вставимо документ до колекції студентів, який має поле для віку.

>>> дані =
… "Name": "Позначити",
... "оцінка": 4,
… "Dob": "2020-04-09",
... "вік": 8

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

Ми бачимо, що ця команда не видає помилки. Оскільки MongoDB - це нереляційна база даних, ми можемо додати будь-яку потрібну інформацію в документ.

Отримання документів

У цьому розділі ми будемо використовувати методи find () та find_one () для отримання даних із бази даних. Метод find () приймає два аргументи: перший використовується для фільтрації документів, а другий - для визначення полів документа, який ми хочемо повернути. Наприклад, якщо ми хочемо отримати ідентифікатор "Джон", тоді ми можемо виконати такий запит:

>>> результат = зб.знайти ("name": "John", "_id": 1)
>>> для x у результаті:
… Друк (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Крім того, ми можемо отримати всі документи з колекції, використовуючи такий запит:

>>> результат = зб.знайти ()
>>> для x у результаті:
… Друк (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 4, 'dob': '2020-04-09', 'age': 8

Оновлення документів

Модуль pymongo пропонує методи update_one () та update_many () для оновлення документів у колекції. Обидва методи беруть два аргументи: перший визначає, який документ потрібно змінити, а другий визначає нові значення. Тепер ми змінимо оцінку студента "Позначка".

>>> запит = "name": "Позначити"
>>> значення = "$ set": "grade": 5
>>> зб.update_one (запит, значення)
>>> для x у зб.find ():
… Друк (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 5, 'dob': '2020-04-09', 'age': 8

Видалення документа

Модуль pymongo у Python має два методи, тобто.e., delete_one () та delete_many () для видалення документів. Обидва методи беруть аргумент, який вибирає документ для видалення. За допомогою наступного коду ми видалимо студента на ім'я "Джон".

>>> запит = "name": "Джон"
>>> зб.delete_one (запит)
>>> для x у зб.find ():
… Друк (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Видалення колекції

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

>>> імпорт pymongo
>>> клієнт = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = клієнт ['demo_db']
>>> col = db ['студенти']
>>> зб.drop ()

Висновок

Знання баз даних є важливим, якщо ви хочете зробити веб-додаток. Майже кожна мова програмування має фреймворки та бібліотеки для веб-розробки. Python може бути використаний у внутрішній розробці веб-сервер, тому ми можемо взаємодіяти з базами даних за допомогою Python під час роботи з серверними платформами Python. У цій статті ми показали вам, як взаємодіяти з базами даних MongoDB та MySQL, використовуючи прості CRUD-операції, написані на Python.

Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...
0 A.D. Tutorial
Out of the many strategy games out there, 0 A.D. manages to stand out as a comprehensive title and a very deep, tactical game despite being open sourc...
Unity3D Tutorial
Introduction to Unity 3D Unity 3D is a powerful game development engine. It is cross platform that is it allows you to create games for mobile, web, d...