Piton

Operații CRUD către baze de date SQL și NoSQL folosind Python

Operații CRUD către baze de date SQL și NoSQL folosind Python
Există două tipuri majore de baze de date care pot fi utilizate cu o aplicație: baze de date relaționale (SQL) și baze de date non-relaționale (NoSQL). Ambele sunt utilizate pe scară largă, dar selectarea unuia depinde de tipul de date care vor fi stocate. Există patru operațiuni de bază care pot fi efectuate pe baze de date: crearea, citirea, actualizarea și ștergerea (CRUD).

Putem interacționa cu baze de date folosind orice limbaj de programare sau putem folosi un program care ne permite să interacționăm cu baza de date utilizând o interfață grafică. În acest articol, vom discuta bazele de date și vă vom arăta cum să interacționați cu ele folosind limbajul de programare Python.

Baze de date relaționale (SQL)

Bazele de date relaționale (SQL) sunt diferite de bazele de date non-relaționale (NoSQL) în ceea ce privește schema. O schemă este un șablon care definește structura datelor pe care urmează să le stocați. În bazele de date relaționale, creăm tabele pentru stocarea datelor. Schema unui tabel este definită la crearea tabelului. De exemplu, dacă dorim să stocăm date despre elevi într-o bază de date relațională, atunci vom crea un tabel de studenți și vom defini schema tabelului, care ar putea include numele, numărul de înregistrare, nota etc. a fiecărui elev. După crearea schemei, vom stoca datele în rândurile tabelului. Este important de reținut că nu putem stoca date care nu sunt definite în schemă. În acest exemplu, nota pe care un elev a primit-o la un examen nu poate fi stocată în tabel deoarece nu am definit o coloană pentru aceste date în schemă.

Următoarea listă include câteva baze de date relaționale populare:

Baze de date non-relaționale (NoSQL)

După cum s-a discutat mai sus, bazele de date non-relaționale nu au o schemă definită. Bazele de date non-relaționale au colecții în loc de tabele, iar aceste colecții conțin documente echivalente cu rândurile dintr-o bază de date relațională. De exemplu, dacă dorim să creăm o bază de date non-relațională pentru a stoca datele elevilor, putem crea o colecție de utilizatori și, în această colecție, vom stoca un document pentru fiecare student. Aceste documente nu au o schemă definită și puteți stoca orice doriți pentru fiecare student.

Efectuarea de operațiuni CRUD în MySQL

Acum, vă vom arăta cum să interacționați cu MySQL folosind Python.

Instalarea driverului MySQL pentru Python

Pentru a interacționa cu MySQL folosind Python, trebuie mai întâi să instalăm driverul MySQL în Python.

[e-mail protejat]: ~ $ sudo pip3 instalează mysql-connector-python

sau

[e-mail protejat]: ~ $ sudo pip instalează mysql-connector-python

Crearea unei baze de date

Înainte de a crea o bază de date, trebuie să ne conectăm cu serverul MySQL folosind Python. Mysql.modulul conector oferă metoda connect () pentru a ajuta la stabilirea unei conexiuni cu MySQL folosind Python.

>>> import mysql.conector
// Înlocuiți cu propriile adrese IP și server
>>> sql = mysql.conector.conectați(
... gazdă = 'localhost',
… Utilizator = „rădăcină”,
... parola = '12345'
…)
>>> print (sql)

Acest mesaj arată că am creat cu succes o conexiune cu o bază de date MySQL folosind Python. Acum, vom rula o interogare SQL pe serverul MySQL folosind metoda execute () din mysql.modulul conector.

>>> cursor = sql.cursor()
>>> query = 'CREATE DATABASE demo_db'
>>> cursor.executa (interogare)

Codul de mai sus va crea o bază de date numită demo_db în MySQL.

Crearea unui tabel

Acum că am creat o bază de date, vom crea un nou tabel numit studenți. Pentru a crea un tabel, trebuie să ne conectăm la baza de date.

>>> sql_db = mysql.conector.conectați(
... gazdă = 'localhost',
… Utilizator = „rădăcină”,
... parolă = '12345',
... baza de date = 'demo_db'
…)

După conectarea la baza de date, vom folosi metoda execute () pentru a rula o interogare SQL pentru a crea un tabel cu o schemă.

>>> query = "CREATE TABLE students (name VARCHAR (64), id INT, grade INT, dob DATE)";
>>> cursor.executați (interogare);

Comanda de mai sus va crea un tabel numit studenți în baza de date demo_db; putem insera doar un nume, un id, un grad și o dată de naștere în tabel, așa cum este definit în schemă.

Introducerea rândurilor într-un tabel

Acum că am creat un tabel, vom insera un student în acest tabel. Vom crea o interogare și apoi vom folosi metoda execute () pentru a rula interogarea pe serverul MySQL folosind Python.

>>> interogare = 'INSERT INTO students (name, id, grade, dob) VALORI („Ioan”, 1, 3, „2020-7-04”)'
>>> cursor.executa (interogare)
>>> sql_db.commit ()

Această interogare va adăuga un student cu datele definite în interogare în tabel. Putem adăuga studenți suplimentari la masă în același mod.

NOTĂ: Modificările vor fi aplicate bazei de date numai dacă rulați sql_db.commit () după aplicarea modificărilor.

Selectarea rândurilor dintr-un tabel

Instrucțiunea SELECT din MySQL este utilizată pentru a returna date dintr-un tabel. Vom folosi metoda execute () pentru a rula o interogare, iar apoi vom folosi metoda fetchall () pentru a obține o listă a tuturor studenților. Apoi, putem folosi o buclă for pentru a afișa toți elevii

>>> query = 'SELECT * FROM students'
>>> cursor.executa (interogare)
>>> rezultat = cursor.fetchall ()
>>> pentru rezultatul x:
... print (x)
(„Ioan”, 1, 3, datetime.data (2020, 7, 4))

Putem vedea că sunt returnate doar datele pentru un singur student, deoarece avem un singur student în tabel. Putem folosi instrucțiunea WHERE din MySQL cu instrucțiunea SELECT pentru a specifica constrângeri. De exemplu, dacă dorim să returnăm elevii doar în clasa a 4-a, putem folosi următoarea interogare:

>>> interogare = 'SELECT * DE LA elevi UNDE nota = 4'
>>> cursor.executa (interogare)
>>> rezultat = cursor.fetchall ()
>>> pentru rezultatul x:
... print (x)

Codul de mai sus va prelua doar elevii din clasa a 4-a.

Actualizarea unui rând

În această secțiune, vă vom arăta cum să actualizați datele studenților într-un tabel MySQL folosind Python. Vom folosi declarația UPDATE cu declarațiile WHERE și SET din MySQL pentru a actualiza datele anumitor studenți. Instrucțiunea WHERE este utilizată pentru a determina care rânduri vor fi actualizate, iar instrucțiunea SET este utilizată pentru a defini valorile utilizate pentru actualizare.

>>> query = 'ACTUALIZAȚI studenții SET nume = "Marcați" WHERE id = 4'
>>> cursor.executa (interogare)
>>> sql_db.commit ()

Acum, vom încerca să citim datele elevilor din tabel folosind instrucțiunea SELECT.

>>> query = 'SELECT * FROM students WHERE id = 4'
>>> cursor.executa (interogare)
>>> pentru x în cursor:
... print (x)
(„Mark”, 4, 4, datetime.data (2020, 7, 15))

Acum, putem vedea că numele studentului cu id-ul 4 a fost schimbat în Mark.

Ștergerea unui rând

Putem șterge un rând din tabel aplicând instrucțiunea DELETE în MySQL folosind Python. Vom folosi o instrucțiune DELETE cu o instrucțiune WHERE pentru a șterge studenți specifici din tabel.

>>> interogare = 'ȘTERGE DE LA studenți UNDE id = 2'
>>> cursor.executa (interogare)
>>> sql_db.commit ()

Acum, putem returna toți elevii din tabel folosind instrucțiunea SELECT.

>>> query = 'SELECT * FROM students'
>>> cursor.executa (interogare)
>>> pentru x în cursor:
... print (x)
(„Ioan”, 1, 3, datetime.data (2020, 7, 4))
(„Ioan”, 3, 3, datetime.data (2020, 7, 8))
(„Mark”, 4, 4, datetime.data (2020, 7, 15))

Putem vedea că tabelul nu conține un student cu un ID de 2, întrucât l-am eliminat de pe tabel.

Aruncarea unui tabel

Mysql.modulul conector poate fi, de asemenea, utilizat pentru a fixa o masă. Putem executa o instrucțiune DROP în MySQL folosind metoda execute ().

>>> cursor = sql_db.cursor()
>>> interogare = 'DROP TABLE elevi'
>>> cursor.executa (interogare)

Codul de mai sus va șterge tabelul numit studenți atunci când este executat în Python.

Aceasta încheie discuția noastră despre bazele de date SQL. V-am arătat cum să aplicați diferite interogări la baza de date MySQL folosind Python. Apoi, vom aplica operații CRUD la o bază de date NoSQL numită MongoDB

Efectuarea de operațiuni CRUD în MongoDB

Pentru a interacționa cu MongoDB folosind Python, trebuie mai întâi să instalăm pymongo, care este un driver MongoDB pentru Python.

[e-mail protejat]: ~ $ sudo pip instalează pymongo

sau

[e-mail protejat]: ~ $ sudo pip3 instalează pymongo

Crearea unei baze de date

Ne putem conecta la MongoDB folosind metoda MongoClient () a modulului pymongo din MongoDB. Înainte de a efectua orice acțiune, trebuie să ne conectăm la baza de date MongoDB.

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

După conectarea la baza de date, putem executa următoarea linie pentru a crea o nouă bază de date numită demo_db.

>>> db = client ['demo_db']

Dacă baza de date există deja, atunci această comandă este ignorată.

Crearea unei colecții

Acum că am creat o bază de date, vom crea o colecție numită studenți în baza de date numită.

>>> import pymongo
>>> client = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = client ['demo_db']
>>> col = db ['studenti']

NOTĂ: MongoDB nu creează o colecție până când nu introduceți date în ea. Prin urmare, dacă încercați să accesați colecția după ce ați rulat codul de mai sus, veți descoperi că nu există nimic în baza de date.

MySQL fără linie, nu trebuie să definim o schemă atunci când creăm o nouă colecție, deoarece MongoDB este o bază de date non-relațională.

Inserarea unui document

După crearea unei colecții, putem introduce un document în colecție. Mai întâi, trebuie să definim un dicționar și apoi putem folosi metoda insert_one () pentru a insera datele definite în dicționar în colecție.

NOTĂ: MongoDB creează automat un „_id” unic pentru fiecare document; prin urmare, nu este nevoie să specificăm un id.

>>> date =
… „Nume”: „Ioan”,
… „Grad”: 3,
… „Dob”: „03-04-2020”
...
>>> rezultat = col.insert_one (date)

În documentul de mai sus, am inserat numele, gradul și dob. Acum, vom insera un document în colecția studenților care are un câmp pentru vârstă.

>>> date =
… „Nume”: „Mark”,
… „Grad”: 4,
… „Dob”: „09-04-2020”,
… „Vârstă”: 8
...
>>> rezultat = col.insert_one (date)

Putem vedea că această comandă nu aruncă o eroare. Deoarece MongoDB este o bază de date non-relațională, putem adăuga orice informație dorită în document.

Obținerea documentelor

În această secțiune, vom folosi metodele find () și find_one () pentru a obține date din baza de date. Metoda find () ia două argumente: primul este utilizat pentru filtrarea documentelor, iar al doilea este utilizat pentru a defini câmpurile documentului pe care dorim să îl returnăm. De exemplu, dacă dorim să obținem ID-ul „John”, atunci putem rula următoarea interogare:

>>> rezultat = col.găsi ("nume": "Ioan", "_id": 1)
>>> pentru rezultatul x:
... print (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Alternativ, putem obține toate documentele din colecție utilizând următoarea interogare:

>>> rezultat = col.găsi()
>>> pentru rezultatul x:
... print (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

Actualizarea documentelor

Modulul pymongo oferă metodele update_one () și update_many () pentru actualizarea documentelor dintr-o colecție. Ambele metode iau două argumente: prima definește documentul de modificat, iar a doua definește noile valori. Acum, vom schimba nota elevului „Mark”.

>>> query = "name": "Mark"
>>> value = "$ set": "grade": 5
>>> col.update_one (interogare, valoare)
>>> pentru x în col.găsi():
... print (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

Ștergerea unui document

Modulul pymongo din Python are două metode, i.e., delete_one () și delete_many (), pentru ștergerea documentelor. Ambele metode iau un argument care selectează documentul de șters. Cu următorul cod, vom șterge un student numit „John”.

>>> query = "name": "John"
>>> col.delete_one (interogare)
>>> pentru x în col.găsi():
... print (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Renunțarea la o colecție

Putem renunța la o colecție în MongoDB folosind metoda drop () a modulului pymongo din Python. În primul rând, trebuie să ne conectăm la baza de date; apoi selectăm baza de date care conține colecția pe care dorim să o eliminăm. După selectarea colecției din baza de date, putem elimina colecția folosind metoda drop (). Următorul cod va renunța la studenți.

>>> import pymongo
>>> client = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = client ['demo_db']
>>> col = db ['studenti']
>>> col.cădere brusca()

Concluzie

Cunoașterea bazelor de date este esențială dacă doriți să creați o aplicație web. Aproape fiecare limbaj de programare are cadre și biblioteci pentru dezvoltare web backend. Python poate fi utilizat în dezvoltarea de backend web și astfel putem interacționa cu baze de date folosind Python în timp ce lucrăm cu framework-uri de backend Python. În acest articol, v-am arătat cum să interacționați cu bazele de date MongoDB și MySQL utilizând operații CRUD simple scrise în Python.

Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...
Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...