Operazioni CRUD ai database SQL e NOSQL utilizzando Python

Operazioni CRUD ai database SQL e NOSQL utilizzando Python
Esistono due tipi principali di database che possono essere utilizzati con un'applicazione: database relazionali (SQL) e database non relazionali (NOSQL). Entrambi sono ampiamente utilizzati ma selezionando uno dipende dal tipo di dati che verranno archiviati. Esistono quattro operazioni di base che possono essere eseguite sui database: creare, leggere, aggiornare ed eliminare (CRUD).

Possiamo interagire con i database utilizzando qualsiasi linguaggio di programmazione o possiamo utilizzare un programma software che ci consenta di interagire con il database utilizzando una GUI. In questo articolo, discuteremo dei database e ti mostreremo come interagire con loro usando il linguaggio di programmazione Python.

Database relazionali (SQL)

I database relazionali (SQL) sono diversi dai database non relazionali (NOSQL) in termini di schema. Uno schema è un modello che definisce la struttura dei dati che stai per archiviare. Nei database relazionali, creiamo tabelle per archiviare i dati. Lo schema di una tabella è definito quando viene creata la tabella. Ad esempio, se vogliamo archiviare i dati sugli studenti in un database relazionale, creeremo una tabella di studenti e definiremo lo schema della tabella, che potrebbe includere il nome, il numero di registrazione, il grado, ecc. di ogni studente. Dopo aver creato lo schema, memorizzeremo i dati nelle righe della tabella. È importante notare che non possiamo archiviare dati che non sono definiti nello schema. In questo esempio, lo studente di grado A ricevuto durante un esame non può essere archiviato nella tabella perché non abbiamo definito una colonna per questi dati nello schema.

Il seguente elenco include alcuni database relazionali popolari:

  • Mariadb
  • Mysql
  • server SQL
  • Postgresql
  • Oracolo

Database non relazionali (NOSQL)

Come discusso in precedenza, i database non relazionali non hanno uno schema definito. I database non relazionali hanno raccolte anziché tabelle e queste raccolte contengono documenti equivalenti alle righe in un database relazionale. Ad esempio, se vogliamo creare un database non relazionale per archiviare i dati degli studenti, possiamo creare una raccolta di utenti e, in questa raccolta, memorizzeremo un documento per ogni studente. Questi documenti non hanno uno schema definito e puoi archiviare tutto ciò che desideri per ogni studente.

Eseguire le operazioni CRUD in MySQL

Ora ti mostreremo come interagire con MySQL usando Python.

Installazione del driver mysql per Python

Per interagire con MySQL usando Python, dobbiamo prima installare MySQL Driver in Python.

ubuntu@ubuntu: ~ $ sudo pip3 installa mysql-connector-python

O

ubuntu@ubuntu: ~ $ sudo pip Installa mysql-connector-python

Creazione di un database

Prima di creare un database, dobbiamo connetterci con MySQL Server utilizzando Python. Il mysql.Il modulo Connector offre il metodo Connect () per aiutare a stabilire una connessione con MySQL utilizzando Python.

>>> Importa mysql.connettore
// Sostituisci con le tue credenziali IP e server
>>> sql = mysql.connettore.Collegare(
... host = 'localhost',
... user = 'root',
... password = '12345'
...)
>>> stampa (SQL)

Questo messaggio mostra che abbiamo creato correttamente una connessione con un database MySQL utilizzando Python. Ora eseguiremo una query SQL sul server MySQL utilizzando il metodo Execute () dal MySQL.Modulo connettore.

>>> cursore = sql.cursore()
>>> query = 'Crea database demo_db'
>>> cursore.eseguire (query)

Il codice sopra creerà un database chiamato demo_db in mysql.

Creazione di una tabella

Ora che abbiamo creato un database, creeremo una nuova tabella denominata studenti. Per creare una tabella, dobbiamo connetterci al database.

>>> sql_db = mysql.connettore.Collegare(
... host = 'localhost',
... user = 'root',
... password = '12345',
... database = 'demo_db'
...)

Dopo aver connesso al database, utilizzeremo il metodo Execute () per eseguire una query SQL per creare una tabella con uno schema.

>>> query = "Crea studenti tabella (nome varchar (64), id int, grado int, data dob)";
>>> cursore.eseguire (query);

Il comando sopra creerà una tabella denominata studenti nel database Demo_DB; Possiamo inserire solo un nome, ID, grado e data di nascita nella tabella, come definito nello schema.

Inserire le righe in una tabella

Ora che abbiamo creato una tabella, inseriremo uno studente in questa tabella. Creeremo una query e quindi utilizzeremo il metodo Execute () per eseguire la query su MySQL Server utilizzando Python.

>>> query = 'insert in studenti (nome, id, grado, dob) valori ("John", 1, 3, "2020-7-04")'
>>> cursore.eseguire (query)
>>> sql_db.commettere()

Questa query aggiungerà uno studente con i dati definiti nella query nella tabella. Possiamo aggiungere ulteriori studenti al tavolo allo stesso modo.

Nota: le modifiche verranno applicate al database solo se si esegue SQL_DB.commit () dopo aver applicato le modifiche.

Selezione di righe da una tabella

L'istruzione Select in MySQL viene utilizzata per restituire i dati da una tabella. Useremo il metodo Execute () per eseguire una query, quindi useremo il metodo Fetchall () per ottenere un elenco di tutti gli studenti. Quindi, possiamo usare un loop per visualizzare tutti gli studenti

>>> query = 'seleziona * dagli studenti'
>>> cursore.eseguire (query)
>>> risultato = cursore.fetchall ()
>>> per x in risultato:
... stampa (x)
("John", 1, 3, DateTime.Data (2020, 7, 4))

Possiamo vedere che vengono restituiti solo i dati per un singolo studente, poiché abbiamo solo uno studente nella tabella. Possiamo usare l'istruzione WHE WHE in MySQL con l'istruzione SELECT per specificare i vincoli. Ad esempio, se vogliamo restituire solo gli studenti in grado 4, possiamo usare la seguente query:

>>> query = 'Seleziona * dagli studenti dove Grado = 4'
>>> cursore.eseguire (query)
>>> risultato = cursore.fetchall ()
>>> per x in risultato:
... stampa (x)

Il codice sopra riporterà solo gli studenti di grado 4.

Aggiornamento di una riga

In questa sezione, ti mostreremo come aggiornare i dati degli studenti in una tabella MySQL usando Python. Utilizzeremo la dichiarazione di aggiornamento con le dichiarazioni Where e Imposta in MySQL per aggiornare i dati di studenti specifici. L'istruzione dove viene utilizzata per determinare quali righe verranno aggiornate e l'istruzione set viene utilizzata per definire i valori utilizzati per l'aggiornamento.

>>> query = 'update studenti set name = "mark" dove id = 4'
>>> cursore.eseguire (query)
>>> sql_db.commettere()

Ora, proveremo a leggere i dati degli studenti dalla tabella utilizzando l'istruzione SELECT.

>>> query = 'seleziona * dagli studenti dove id = 4'
>>> cursore.eseguire (query)
>>> per x in cursore:
... stampa (x)
("Mark", 4, 4, DateTime.data (2020, 7, 15))

Ora, possiamo vedere che il nome dello studente con ID 4 è stato cambiato in contrassegno.

Eliminazione di una riga

Possiamo eliminare una riga dalla tabella applicando l'istruzione DELETE in MySQL usando Python. Useremo una dichiarazione di eliminazione con una dichiarazione dove eliminare gli studenti specifici dalla tabella.

>>> query = 'elimina dagli studenti dove id = 2'
>>> cursore.eseguire (query)
>>> sql_db.commettere()

Ora, possiamo restituire tutti gli studenti dalla tabella utilizzando l'istruzione SELECT.

>>> query = 'seleziona * dagli studenti'
>>> cursore.eseguire (query)
>>> per x in cursore:
... stampa (x)
("John", 1, 3, DateTime.Data (2020, 7, 4))
("John", 3, 3, DateTime.Data (2020, 7, 8))
("Mark", 4, 4, DateTime.data (2020, 7, 15))

Possiamo vedere che la tabella non contiene uno studente con un ID di 2, poiché abbiamo rimosso lo studente dalla tabella.

Far cadere un tavolo

Il mysql.Il modulo del connettore può anche essere utilizzato per far cadere una tabella. Possiamo eseguire un'istruzione drop in MySQL utilizzando il metodo Execute ().

>>> cursore = sql_db.cursore()
>>> query = 'drop table studenti'
>>> cursore.eseguire (query)

Il codice sopra eliminerà la tabella denominata studenti quando eseguita in Python.

Ciò conclude la nostra discussione sui database SQL. Ti abbiamo mostrato come applicare diverse query al database MySQL usando Python. Successivamente, applicheremo le operazioni CRUD a un database NOSQL chiamato MongoDB

Eseguendo operazioni CRUD in MongoDB

Per interagire con MongoDB usando Python, dobbiamo prima installare PyMongo, che è un driver MongoDB per Python.

ubuntu@ubuntu: ~ $ sudo pip Installa pymongo

O

ubuntu@ubuntu: ~ $ sudo pip3 installa pymongo

Creazione di un database

Possiamo connetterci a MongoDB usando il metodo Mongoclient () del modulo PyMongo in MongoDB. Prima di eseguire qualsiasi azione, dobbiamo connetterci al database MongoDB.

>>> Importa PyMongo
>>> client = pymongo.Mongoclient ('MongoDB: // localhost: 27017/')

Dopo aver connesso alla datacase, possiamo eseguire la seguente riga per creare un nuovo database denominato Demo_DB.

>>> db = client ['demo_db']

Se il database esiste già, questo comando viene ignorato.

Creazione di una collezione

Ora che abbiamo creato un database, creeremo una raccolta denominata studenti nel database denominato.

>>> Importa PyMongo
>>> client = pymongo.Mongoclient ('MongoDB: // localhost: 27017/')
>>> db = client ['demo_db']
>>> col = db ["studenti"]

Nota: MongoDB non crea una raccolta fino a quando non si inseriscono i dati. Pertanto, se si tenta di accedere alla raccolta dopo l'esecuzione del codice sopra, scoprirai che non c'è nulla nel database.

Mysql sfoderato, non dobbiamo definire uno schema quando creiamo una nuova raccolta, poiché MongoDB è un database non relazionale.

Inserire un documento

Dopo aver creato una raccolta, possiamo inserire un documento all'interno della raccolta. Innanzitutto, dobbiamo definire un dizionario, quindi possiamo usare il metodo Insert_one () per inserire i dati definiti nel dizionario nella raccolta.

Nota: MongoDB crea automaticamente un "_id" unico per ogni documento; Pertanto, non abbiamo bisogno di specificare un ID.

>>> data =
... "nome": "John",
… "livello 3,
... "Dob": "2020-04-03"
...
>>> risultato = col.insert_one (dati)

Nel documento sopra, abbiamo inserito nome, grado e DOB. Ora inseriremo un documento nella collezione Students che ha un campo per età.

>>> data =
... "nome": "Mark",
... "Grado": 4,
... "Dob": "2020-04-09",
... "Age": 8
...
>>> risultato = col.insert_one (dati)

Possiamo vedere che questo comando non lancia un errore. Poiché MongoDB è un database non relazionale, possiamo aggiungere qualsiasi informazione che desideriamo nel documento.

Ottenere documenti

In questa sezione, useremo i metodi Find () e Find_one () per ottenere dati dal database. Il metodo Find () prende due argomenti: il primo viene utilizzato per filtrare i documenti e il secondo viene utilizzato per definire i campi del documento che vogliamo restituire. Ad esempio, se vogliamo ottenere l'ID di "John", allora possiamo eseguire la seguente domanda:

>>> risultato = col.find ("name": "John", "_id": 1)
>>> per x in risultato:
... stampa (x)
'_id': objectid ('5f8f0514cb12c01f7420656e')

In alternativa, possiamo ottenere tutti i documenti dalla raccolta utilizzando la seguente query:

>>> risultato = col.Trovare()
>>> per x in risultato:
... stampa (x)
'_id': objectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': objectId ('5f8f061ccb12c01f7420656f'), 'name': 'mark', 'grade': 4, 'dob': '2020-04-09', 'età': 8

Aggiornamento dei documenti

Il modulo PyMongo offre i metodi update_one () e update_many () per l'aggiornamento dei documenti in una raccolta. Entrambi i metodi prendono due argomenti: il primo definisce quale documento cambia e il secondo definisce i nuovi valori. Ora cambieremo il voto del "segno" dello studente.

>>> query = "nome": "mark"
>>> value = "$ set": "grado": 5
>>> col.update_one (query, valore)
>>> per x in col.Trovare():
... stampa (x)
'_id': objectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': objectId ('5f8f061ccb12c01f7420656f'), 'name': 'mark', 'grade': 5, 'dob': '2020-04-09', 'età': 8

Eliminazione di un documento

Il modulo PyMongo in Python ha due metodi, i.e., delete_one () e delete_many (), per eliminare i documenti. Entrambi i metodi prendono un argomento che seleziona il documento da eliminare. Con il seguente codice, elimineremo uno studente chiamato "John".

>>> query = "nome": "John"
>>> col.delete_one (query)
>>> per x in col.Trovare():
... stampa (x)
'_id': objectId ('5f8f061ccb12c01f7420656f'), 'name': 'mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09' ',' age ': 8

Far cadere una collezione

Possiamo abbandonare una raccolta in MongoDB usando il metodo Drop () del modulo PyMongo in Python. Innanzitutto, dobbiamo connetterci al database; Quindi, selezioniamo il database che contiene la raccolta che vogliamo rimuovere. Dopo aver selezionato la raccolta dal database, possiamo rimuovere la raccolta utilizzando il metodo Drop (). Il seguente codice eliminerà gli studenti.

>>> Importa PyMongo
>>> client = pymongo.Mongoclient ('MongoDB: // localhost: 27017/')
>>> db = client ['demo_db']
>>> col = db ["studenti"]
>>> col.gocciolare()

Conclusione

La conoscenza dei database è essenziale se si desidera creare un'applicazione Web. Quasi ogni linguaggio di programmazione ha framework e librerie per lo sviluppo web backend. Python può essere utilizzato nello sviluppo del web backend e quindi possiamo interagire con i database usando Python mentre si lavora con i quadri back -end di Python. In questo articolo, ti abbiamo mostrato come interagire con i database MongoDB e MySQL utilizzando semplici operazioni CRUD scritte in Python.