Python

CRUD-operasjoner til SQL- og NoSQL-databaser ved bruk av Python

CRUD-operasjoner til SQL- og NoSQL-databaser ved bruk av Python
Det er to hovedtyper av databaser som kan brukes med et program: relasjonsdatabaser (SQL) og ikke-relasjonsdatabaser (NoSQL). Begge er mye brukt, men å velge en avhenger av hvilken type data som skal lagres. Det er fire grunnleggende operasjoner som kan utføres på databaser: opprette, lese, oppdatere og slette (CRUD).

Vi kan samhandle med databaser ved hjelp av hvilket som helst programmeringsspråk, eller vi kan bruke et program som lar oss samhandle med databasen ved hjelp av en GUI. I denne artikkelen vil vi diskutere databaser og vise deg hvordan du kan samhandle med dem ved hjelp av Python-programmeringsspråket.

Relasjonsdatabaser (SQL)

Relasjonsdatabaser (SQL) er forskjellige fra ikke-relasjonsdatabaser (NoSQL) når det gjelder skjema. Et skjema er en mal som definerer strukturen til dataene du skal lagre. I relasjonsdatabaser lager vi tabeller for å lagre data. Skjemaet til en tabell defineres når tabellen opprettes. Hvis vi for eksempel vil lagre data om studenter i en relasjonsdatabase, vil vi lage en tabell med studenter og definere skjemaet til tabellen, som kan inneholde navn, registreringsnummer, karakter osv. av hver student. Etter at du har opprettet skjemaet, lagrer vi dataene i radene i tabellen. Det er viktig å merke seg at vi ikke kan lagre data som ikke er definert i skjemaet. I dette eksemplet kan ikke karakteren studenten fikk på en eksamen lagres i tabellen fordi vi ikke har definert en kolonne for disse dataene i skjemaet.

Følgende liste inneholder noen populære relasjonsdatabaser:

Ikke-relasjonelle databaser (NoSQL)

Som diskutert ovenfor har ikke-relasjonelle databaser et definert skjema. Ikke-relasjonelle databaser har samlinger i stedet for tabeller, og disse samlingene inneholder dokumenter som tilsvarer radene i en relasjonsdatabase. Hvis vi for eksempel vil opprette en ikke-relasjonell database for å lagre studentdata, kan vi opprette en samling brukere, og i denne samlingen vil vi lagre et dokument for hver student. Disse dokumentene har ikke et definert skjema, og du kan lagre hva du vil for hver elev.

Utføre CRUD-operasjoner i MySQL

Nå vil vi vise deg hvordan du kan samhandle med MySQL ved hjelp av Python.

Installere MySQL Driver for Python

For å samhandle med MySQL ved hjelp av Python, må vi først installere MySQL-driveren i Python.

[e-postbeskyttet]: ~ $ sudo pip3 installer mysql-connector-python

eller

[e-postbeskyttet]: ~ $ sudo pip installer mysql-connector-python

Opprette en database

Før vi oppretter en database, må vi koble til MySQL-serveren ved hjelp av Python. Mysql.connector module tilbyr connect () -metoden for å bidra til å opprette en forbindelse med MySQL ved hjelp av Python.

>>> importer mysql.kontakt
// Erstatt med din egen IP- og serverlegitimasjon
>>> sql = mysql.kontakt.koble(
... host = 'localhost',
... bruker = 'root',
... passord = '12345'
...)
>>> utskrift (kvl)

Denne meldingen viser at vi har opprettet en forbindelse med en MySQL-database ved hjelp av Python. Nå vil vi kjøre et SQL-spørsmål på MySQL-serveren ved hjelp av execute () -metoden fra mysql.koblingsmodul.

>>> markør = kvl.markør ()
>>> spørring = 'CREATE DATABASE demo_db'
>>> markør.utføre (spørring)

Ovennevnte kode vil opprette en database som heter demo_db i MySQL.

Lage et bord

Nå som vi har opprettet en database, vil vi lage en ny tabell som heter studenter. For å lage en tabell, må vi koble til databasen.

>>> sql_db = mysql.kontakt.koble(
... host = 'localhost',
... bruker = 'root',
... passord = '12345',
... database = 'demo_db'
...)

Etter å ha koblet til databasen, vil vi bruke execute () -metoden til å kjøre en SQL-spørring for å lage en tabell med et skjema.

>>> spørring = "CREATE TABLE students (name VARCHAR (64), id INT, grade INT, dob DATE)";
>>> markør.utføre (spørring);

Ovennevnte kommando vil opprette en tabell som heter studenter i demo_db-databasen; vi kan bare sette inn et navn, id, karakter og fødselsdato i tabellen, som definert i skjemaet.

Sette inn rader i en tabell

Nå som vi har laget en tabell, vil vi sette inn en student i denne tabellen. Vi oppretter et spørsmål og bruker deretter metoden execute () for å kjøre spørringen på MySQL-serveren ved hjelp av Python.

>>> spørring = 'INSERT IN TO Students (name, id, grade, dob) VALUES (“John”, 1, 3, “2020-7-04”)'
>>> markør.utføre (spørring)
>>> sql_db.begå()

Dette spørsmålet vil legge til en student med dataene som er definert i spørringen i tabellen. Vi kan legge til flere studenter i tabellen på samme måte.

MERKNAD: Endringer blir bare brukt i databasen hvis du kjører sql_db.commit () etter bruk av endringer.

Velge rader fra en tabell

SELECT-setningen i MySQL brukes til å returnere data fra en tabell. Vi vil bruke execute () -metoden til å kjøre et spørsmål, og deretter vil vi bruke fetchall () -metoden for å få en liste over alle studenter. Deretter kan vi bruke en for loop til å vise alle studentene

>>> spørring = 'VELG * FRA studenter'
>>> markør.utføre (spørring)
>>> resultat = markør.fetchall ()
>>> for x i resultat:
... skriv ut (x)
('John', 1, 3, datetime.dato (2020, 7, 4))

Vi kan se at bare data for en enkelt elevdata returneres, ettersom vi bare har en student i tabellen. Vi kan bruke WHERE-setningen i MySQL med SELECT-setningen for å spesifisere begrensninger. For eksempel, hvis vi bare vil returnere studentene i 4. klasse, kan vi bruke følgende spørsmål:

>>> spørring = 'VELG * FRA studenter hvor karakter = 4'
>>> markør.utføre (spørring)
>>> resultat = markør.fetchall ()
>>> for x i resultat:
... skriv ut (x)

Ovennevnte kode vil bare hente studentene fra 4. klasse.

Oppdaterer en rad

I denne delen vil vi vise deg hvordan du oppdaterer studentdataene i en MySQL-tabell ved hjelp av Python. Vi vil bruke UPDATE-setningen med WHERE- og SET-setningene i MySQL for å oppdatere dataene til spesifikke studenter. WHERE-setningen brukes til å bestemme hvilke rader som skal oppdateres, og SET-setningen brukes til å definere verdiene som brukes til oppdateringen.

>>> spørring = 'OPPDATER studenter SETT navn = "Merk" WHERE id = 4'
>>> markør.utføre (spørring)
>>> sql_db.begå()

Nå vil vi prøve å lese studentdataene fra tabellen ved å bruke SELECT-setningen.

>>> spørring = 'VELG * FRA studenter HVOR id = 4'
>>> markør.utføre (spørring)
>>> for x i markør:
... skriv ut (x)
('Mark', 4, 4, datetime.dato (2020, 7, 15))

Nå kan vi se at navnet på studenten med id 4 er endret til Mark.

Slette en rad

Vi kan slette en rad fra tabellen ved å bruke DELETE-setningen i MySQL ved hjelp av Python. Vi bruker en DELETE-setning med en WHERE-setning for å slette spesifikke studenter fra tabellen.

>>> spørring = 'SLETT FRA studenter WHERE id = 2'
>>> markør.utføre (spørring)
>>> sql_db.begå()

Nå kan vi returnere alle studentene fra tabellen ved hjelp av SELECT-setningen.

>>> spørring = 'VELG * FRA studenter'
>>> markør.utføre (spørring)
>>> for x i markør:
... skriv ut (x)
('John', 1, 3, datetime.dato (2020, 7, 4))
('John', 3, 3, datetime.dato (2020, 7, 8))
('Mark', 4, 4, datetime.dato (2020, 7, 15))

Vi kan se at tabellen ikke inneholder en student med id 2, ettersom vi har fjernet studenten fra tabellen.

Å slippe et bord

Mysql.kontaktmodul kan også brukes til å slippe et bord. Vi kan utføre en DROP-setning i MySQL ved å bruke execute () -metoden.

>>> markør = sql_db.markør ()
>>> spørring = 'DROP TABLE students'
>>> markør.utføre (spørring)

Ovennevnte kode vil slette tabellen som heter studentene når den kjøres i Python.

Det avslutter diskusjonen vår om SQL-databaser. Vi har vist deg hvordan du bruker forskjellige spørsmål til MySQL-databasen ved hjelp av Python. Deretter vil vi bruke CRUD-operasjoner til en NoSQL-database kalt MongoDB

Utfører CRUD-operasjoner i MongoDB

For å samhandle med MongoDB ved hjelp av Python, må vi først installere pymongo, som er en MongoDB-driver for Python.

[e-postbeskyttet]: ~ $ sudo pip install pymongo

eller

[e-postbeskyttet]: ~ $ sudo pip3 installer pymongo

Opprette en database

Vi kan koble til MongoDB ved hjelp av MongoClient () -metoden til pymongo-modulen i MongoDB. Før vi utfører handlinger, må vi koble til MongoDB-databasen.

>>> importer pymongo
>>> klient = pymongo.MongoClient ('mongodb: // localhost: 27017 /')

Etter å ha koblet til datakassen, kan vi utføre følgende linje for å opprette en ny database som heter demo_db.

>>> db = klient ['demo_db']

Hvis databasen allerede eksisterer, ignoreres denne kommandoen.

Opprette en samling

Nå som vi har opprettet en database, oppretter vi en samling som heter studenter i databasen som heter.

>>> importer pymongo
>>> klient = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = klient ['demo_db']
>>> col = db ['studenter']

MERK: MongoDB oppretter ikke en samling før du legger inn data i den. Derfor, hvis du prøver å få tilgang til samlingen etter å ha kjørt ovennevnte kode, vil du oppdage at det ikke er noe i databasen.

Uforet MySQL, vi trenger ikke å definere et skjema når vi oppretter en ny samling, da MongoDB er en ikke-relasjonell database.

Sette inn et dokument

Etter å ha opprettet en samling, kan vi sette inn et dokument i samlingen. Først må vi definere en ordbok, og deretter kan vi bruke metoden insert_one () for å sette inn dataene som er definert i ordboken i samlingen.

MERK: MongoDB oppretter automatisk et unikt '_id' for hvert dokument; Derfor trenger vi ikke å spesifisere en id.

>>> data =
… "Name": "John",
... "karakter": 3,
… "Dob": "2020-04-03"
...
>>> resultat = kol.insert_one (data)

I dokumentet ovenfor har vi satt inn navn, karakter og dob. Nå skal vi sette inn et dokument i elevsamlingen som har et felt for alder.

>>> data =
… "Name": "Mark",
... "karakter": 4,
… "Dob": "2020-04-09",
... "alder": 8
...
>>> resultat = kol.insert_one (data)

Vi kan se at denne kommandoen ikke kaster feil. Fordi MongoDB er en ikke-relasjonell database, kan vi legge til all informasjon vi ønsker i dokumentet.

Få dokumenter

I denne delen vil vi bruke find () og find_one () -metodene for å få data fra databasen. Find () -metoden tar to argumenter: den første brukes til å filtrere dokumenter, og den andre brukes til å definere feltene i dokumentet vi vil returnere. For eksempel, hvis vi ønsker å få ID til 'John', så kan vi kjøre følgende spørsmål:

>>> resultat = kol.finn ("name": "John", "_id": 1)
>>> for x i resultat:
... skriv ut (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Alternativt kan vi få alle dokumentene fra samlingen ved å bruke følgende spørsmål:

>>> resultat = kol.finne()
>>> for x i resultat:
... skriv ut (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

Oppdatere dokumenter

Pymongo-modulen tilbyr metodene update_one () og update_many () for oppdatering av dokumentene i en samling. Begge metodene tar to argumenter: den første definerer hvilket dokument som skal endres, og den andre definerer de nye verdiene. Nå skal vi endre karakteren til studenten 'Mark'.

>>> spørring = "name": "Merk"
>>> verdi = "$ set": "grade": 5
>>> kol.update_one (spørring, verdi)
>>> for x i kol.finne():
... skriv ut (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

Slette et dokument

Pymongo-modulen i Python har to metoder, dvs.e., delete_one () og delete_many (), for å slette dokumenter. Begge metodene tar et argument som velger dokumentet som skal slettes. Med følgende kode vil vi slette en student som heter 'John'.

>>> spørring = "name": "John"
>>> kol.delete_one (spørring)
>>> for x i kol.finne():
... skriv ut (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Dropper en samling

Vi kan droppe en samling i MongoDB ved å bruke drop () -metoden til pymongo-modulen i Python. Først må vi koble til databasen; deretter velger vi databasen som inneholder samlingen vi vil fjerne. Etter å ha valgt samlingen fra databasen, kan vi fjerne samlingen ved hjelp av drop () -metoden. Følgende kode vil slippe studentene.

>>> importer pymongo
>>> klient = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = klient ['demo_db']
>>> col = db ['studenter']
>>> kol.miste()

Konklusjon

Kunnskap om databaser er viktig hvis du vil lage en webapplikasjon. Nesten alle programmeringsspråk har rammer og biblioteker for backend webutvikling. Python kan brukes i webutvikling av backend, og slik at vi kan samhandle med databaser ved hjelp av Python mens vi jobber med Python backend-rammer. I denne artikkelen viste vi deg hvordan du kan samhandle med MongoDB- og MySQL-databaser ved hjelp av enkle CRUD-operasjoner skrevet i Python.

Mus Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kartlegg museknappene på en annen måte for annen programvare med X-Mouse Button Control
Kanskje du trenger et verktøy som kan gjøre at musens kontroll endres med hvert program du bruker. Hvis dette er tilfelle, kan du prøve et program som...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har nylig lest om Microsoft Sculpt Touch trådløs mus og bestemte meg for å kjøpe den. Etter å ha brukt den en stund bestemte jeg meg for å dele mi...
Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...