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-конектор-python

Създаване на база данни

Преди да създадем база данни, трябва да се свържем с MySQL сървър, използвайки Python. MySQL.Модулът на конектора предлага метода connect (), който помага да се установи връзка с MySQL с помощта на Python.

>>> импортиране на mysql.съединител
// Заменете със собствени идентификационни данни за IP и сървър
>>> sql = mysql.съединител.свързване (
... хост = 'localhost',
... потребител = 'корен',
... парола = '12345'
...)
>>> печат (sql)

Това съобщение показва, че успешно сме създали връзка с база данни MySQL, използвайки Python. Сега ще изпълним SQL заявка на MySQL сървър, използвайки метода execute () от mysql.съединителен модул.

>>> курсор = sql.курсор ()
>>> query = 'СЪЗДАЙ БАЗА ДАННИ demo_db'
>>> курсор.изпълни (заявка)

Горният код ще създаде база данни с име demo_db в MySQL.

Създаване на таблица

След като създадохме база данни, ще създадем нова таблица с име ученици. За да създадем таблица, трябва да се свържем с базата данни.

>>> sql_db = mysql.съединител.свързване (
... хост = 'localhost',
... потребител = 'корен',
... парола = '12345',
... база данни = 'demo_db'
...)

След свързване към базата данни ще използваме метода execute (), за да стартираме SQL заявка, за да създадем таблица със схема.

>>> заявка = "СЪЗДАВАНЕ НА ТАБЛИЦА ученици (име VARCHAR (64), id INT, клас INT, dob DATE)";
>>> курсор.изпълнение (заявка);

Горната команда ще създаде таблица с имена ученици в базата данни demo_db; можем да вмъкнем в таблицата само име, идентификатор, степен и дата на раждане, както е дефинирано в схема.

Вмъкване на редове в таблица

След като създадохме таблица, ще вмъкнем ученик в тази таблица. Ще създадем заявка и след това ще използваме метода execute (), за да стартираме заявката на MySQL сървър, използвайки Python.

>>> query = 'INSERT INTO students (name, id, grade, dob) VALUES („John“, 1, 3, „2020-7-04“)'
>>> курсор.изпълни (заявка)
>>> sql_db.ангажиране ()

Тази заявка ще добави студент с данните, дефинирани в заявката, в таблицата. Можем да добавим допълнителни ученици към масата по същия начин.

ЗАБЕЛЕЖКА: Промените ще бъдат приложени към базата данни само ако стартирате sql_db.commit () след прилагане на промени.

Избиране на редове от таблица

Операторът SELECT в MySQL се използва за връщане на данни от таблица. Ще използваме метода execute (), за да изпълним заявка, а след това ще използваме метода fetchall (), за да получим списък с всички ученици. След това можем да използваме цикъл for, за да покажем всички ученици

>>> query = 'SELECT * FROM students'
>>> курсор.изпълни (заявка)
>>> резултат = курсор.извличане ()
>>> за x в резултат:
... печат (x)
(„Йоан“, 1, 3, дата и час.дата (2020, 7, 4))

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

>>> query = 'ИЗБЕРЕТЕ * ОТ ученици, КЪДЕ оценка = 4'
>>> курсор.изпълни (заявка)
>>> резултат = курсор.извличане ()
>>> за x в резултат:
... печат (x)

Горният код ще извлече само учениците от 4 клас.

Актуализиране на ред

В този раздел ще ви покажем как да актуализирате студентските данни в таблица на MySQL с помощта на Python. Ще използваме оператора UPDATE с инструкциите WHERE и SET в MySQL, за да актуализираме данните на конкретни студенти. Операторът WHERE се използва за определяне кои редове ще бъдат актуализирани, а инструкцията SET се използва за дефиниране на стойностите, използвани за актуализацията.

>>> query = 'АКТУАЛИЗИРАНЕ на ученици SET name = "Маркиране" WHERE id = 4'
>>> курсор.изпълни (заявка)
>>> sql_db.ангажиране ()

Сега ще се опитаме да прочетем студентските данни от таблицата, като използваме оператора SELECT.

>>> query = 'SELECT * FROM students WHERE id = 4'
>>> курсор.изпълни (заявка)
>>> за x в курсора:
... печат (x)
(„Маркиране“, 4, 4, дата и час.дата (2020, 7, 15))

Сега можем да видим, че името на ученика с id 4 е променено на Mark.

Изтриване на ред

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

>>> query = 'ИЗТРИВАНЕ ОТ студенти, КЪДЕ id = 2'
>>> курсор.изпълни (заявка)
>>> sql_db.ангажиране ()

Сега можем да върнем всички ученици от таблицата, като използваме оператора 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 = 'DROP TABLE students'
>>> курсор.изпълни (заявка)

Горният код ще изтрие таблицата с имена ученици при изпълнение в Python.

Това завършва нашата дискусия за SQL бази данни. Показахме ви как да прилагате различни заявки към базата данни MySQL с помощта на Python. След това ще приложим CRUD операции към база данни NoSQL, наречена MongoDB

Извършване на CRUD операции в MongoDB

За да взаимодействаме с MongoDB с помощта на Python, първо трябва да инсталираме pymongo, който е драйвер на MongoDB за Python.

[имейл защитен]: ~ $ sudo pip install 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' за всеки документ; следователно не е необходимо да посочваме идентификатор.

>>> данни =
... "име": "Джон",
... "оценка": 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": "Mark"
>>> стойност = "$ set": "grade": 5
>>> col.update_one (заявка, стойност)
>>> за x в кол.намирам():
... печат (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 има два метода, т.е.д., delete_one () и delete_many (), за изтриване на документи. И двата метода вземат аргумент, който избира документа за изтриване. Със следния код ще изтрием студент на име „Джон“.

>>> заявка = "name": "John"
>>> col.delete_one (заявка)
>>> за x в кол.намирам():
... печат (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 ['ученици']
>>> col.изпускайте()

Заключение

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

Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...
Урок за битка за Уеснот
Битката за Уеснот е една от най-популярните стратегически игри с отворен код, които можете да играете по това време. Тази игра не само се разработва о...