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 en applikasjon: relasjonsdatabaser (SQL) og ikke-relasjonsdatabaser (NOSQL). Begge er mye brukt, men å velge en avhenger av hvilken type data som vil bli lagret. 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 et 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 er definert når tabellen opprettes. Hvis vi for eksempel ønsker å lagre data om studenter i en relasjonsdatabase, vil vi lage en tabell med elever og definere skjemaet på tabellen, som kan inneholde navnet, registreringsnummeret, karakteren osv. av hver student. Etter å ha opprettet skjemaet, lagrer vi dataene i radene på tabellen. Det er viktig å merke seg at vi ikke kan lagre data som ikke er definert i skjemaet. I dette eksemplet kan ikke klasse A -eleven mottatt 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:

  • Mariadb
  • Mysql
  • SQL Server
  • PostgreSql
  • Oracle

Ikke-relasjonelle databaser (NOSQL)

Som diskutert ovenfor, har ikke 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 ønsker å lage en ikke-relasjonsdatabase for å lagre studentdata, kan vi opprette en samling brukere, og i denne samlingen lagrer vi et dokument for hver student. Disse dokumentene har ikke et definert skjema, og du kan lagre alt du vil ha for hver student.

Utføre råoperasjoner i mysql

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

Installere MySQL -driveren for Python

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

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

eller

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

Opprette en database

Før vi oppretter en database, må vi koble til MySQL Server ved hjelp av Python. Mysql.Connector Module tilbyr Connect () -metoden for å hjelpe til med å etablere en forbindelse med MySQL ved hjelp av Python.

>>> Importer mysql.kontakt
// erstatte med din egen IP- og serveropplysning
>>> sql = mysql.kontakt.koble(
... vert = 'localhost',
... bruker = 'rot',
... passord = '12345'
...)
>>> trykk (SQL)

Denne meldingen viser at vi har opprettet en forbindelse med en MySQL -database ved hjelp av Python. Nå kjører vi en SQL -spørring på MySQL Server ved hjelp av Execute () -metoden fra MySQL.Koblingsmodul.

>>> markør = SQL.markør ()
>>> spørring = 'Opprett database demo_db'
>>> markør.Utfør (spørring)

Ovennevnte kode oppretter en database som heter Demo_DB i MySQL.

Opprette et bord

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

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

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

>>> spørring = "Opprett tabellstudenter (navn varchar (64), id int, karakter int, dob date)";
>>> markør.utføre (spørring);

Kommandoen ovenfor 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.

Sett inn rader i et bord

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

>>> spørring = 'sett inn i studenter (navn, ID, karakter, DOB) verdier (“John”, 1, 3, “2020-7-04”)'
>>> markør.Utfør (spørring)
>>> SQL_DB.begå()

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

Merk: Endringer vil bare bli brukt på databasen hvis du kjører SQL_DB.forplikte () etter å ha brukt endringer.

Velge rader fra et bord

SELECT -setningen i MySQL brukes til å returnere data fra en tabell. Vi bruker Execute () -metoden for å kjøre en spørring, og så bruker vi Fetchall () -metoden for å få en liste over alle studenter. Deretter kan vi bruke en for loop for å vise alle studentene

>>> spørring = 'Velg * fra studenter'
>>> markør.Utfør (spørring)
>>> resultat = markør.Fetchall ()
>>> for x i resultatet:
... trykk (x)
('John', 1, 3, DateTime.Dato (2020, 7, 4))

Vi kan se at bare data for en enkelt studentdata returneres, da 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 ønsker å returnere elevene i klasse 4, kan vi bruke følgende spørsmål:

>>> spørring = 'Velg * fra elever der karakter = 4'
>>> markør.Utfør (spørring)
>>> resultat = markør.Fetchall ()
>>> for x i resultatet:
... trykk (x)

Ovennevnte kode vil bare hente elevene fra klasse 4.

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 oppdateringserklæringen med Where og Set -uttalelser i MySQL for å oppdatere dataene til spesifikke studenter. Where -setningen brukes til å bestemme hvilke rader som skal oppdateres, og den angitte uttalelsen brukes til å definere verdiene som brukes for oppdateringen.

>>> spørring = 'Oppdater studenter set name = "mark" hvor id = 4'
>>> markør.Utfør (spørring)
>>> SQL_DB.begå()

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

>>> spørring = 'Velg * fra studenter der ID = 4'
>>> markør.Utfør (spørring)
>>> For x i markøren:
... trykk (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 slettingserklæringen i MySQL ved hjelp av Python. Vi vil bruke en sletterklæring med en hvor uttalelse for å slette spesifikke studenter fra tabellen.

>>> spørring = 'Slett fra studenter der ID = 2'
>>> markør.Utfør (spørring)
>>> SQL_DB.begå()

Nå kan vi returnere alle studentene fra bordet ved hjelp av Select -setningen.

>>> spørring = 'Velg * fra studenter'
>>> markør.Utfør (spørring)
>>> For x i markøren:
... trykk (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 en ID på 2, da vi har fjernet studenten fra bordet.

Slippe et bord

Mysql.Koblingsmodul kan også brukes til å slippe en tabell. Vi kan utføre en drop -uttalelse i MySQL ved å bruke Execute () -metoden.

>>> Markør = SQL_DB.markør ()
>>> spørring = 'Drop Table Students'
>>> markør.Utfør (spørring)

Ovennevnte kode vil slette tabellen som heter studenter når de utføres i Python.

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

Utfører råoperasjoner i MongoDB

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

ubuntu@ubuntu: ~ $ sudo pip install pymongo

eller

ubuntu@ubuntu: ~ $ sudo pip3 installer pymongo

Opprette en database

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

>>> Importer Pymongo
>>> klient = pymongo.MongoClient ('Mongodb: // localhost: 27017/')

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

>>> db = klient ['demo_db']

Hvis databasen allerede eksisterer, blir denne kommandoen ignorert.

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 angir data i den. Derfor, hvis du prøver å få tilgang til samlingen etter å ha kjørt ovennevnte kode, vil du finne at det ikke er noe i databasen.

Ulinjert MySQL, vi trenger ikke å definere et skjema når vi oppretter en ny samling, ettersom 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 INSERT_One () -metoden for å sette inn dataene som er definert i ordboken i samlingen.

Merk: MongoDB oppretter automatisk en unik '_id' for hvert dokument; Derfor trenger vi ikke å spesifisere en ID.

>>> data =
... "Navn": "John",
... "karakter": 3,
... "DOB": "2020-04-03"

>>> resultat = col.insert_one (data)

I dokumentet ovenfor satte vi inn navn, karakter og DOB. Nå vil vi sette inn et dokument i studentsamlingen som har et felt for alder.

>>> data =
... "Navn": "Mark",
... "karakter": 4,
... "DOB": "2020-04-09",
... "Alder": 8

>>> resultat = col.insert_one (data)

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

Få dokumenter

I dette avsnittet 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 ønsker å returnere. Hvis vi for eksempel ønsker å få IDen til 'John', kan vi kjøre følgende spørsmål:

>>> resultat = col.finn ("navn": "John", "_id": 1)
>>> for x i resultatet:
... trykk (x)
'_id': ObjectId ('5F8F0514CB12C01F7420656E')

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

>>> resultat = col.finne()
>>> for x i resultatet:
... trykk (x)
'_id': ObjectId ('5F8F0514CB12C01F7420656E'), 'Navn': 'John', 'karakter': 3, 'Dob': '2020-04-03'
'_id': ObjectId ('5F8F061CCB12C01F7420656F'), 'Navn': 'Mark', 'Grade': 4, 'Dob': '2020-04-09', 'Age': 8

Oppdatering av dokumenter

Pymongo -modulen tilbyr Update_one () og update_many () metoder for å oppdatere 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å vil vi endre karakteren på eleven 'Mark'.

>>> spørring = "navn": "mark"
>>> verdi = "$ set": "karakter": 5
>>> col.update_one (spørring, verdi)
>>> for x i col.finne():
... trykk (x)
'_id': ObjectId ('5F8F0514CB12C01F7420656E'), 'Navn': 'John', 'karakter': 3, 'Dob': '2020-04-03'
'_id': ObjectId ('5F8F061CCB12C01F7420656F'), 'Navn': 'Mark', 'Grade': 5, 'Dob': '2020-04-09', 'Age': 8

Slette et dokument

Pymongo -modulen i Python har to metoder, i.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 = "navn": "John"
>>> col.delete_one (spørring)
>>> for x i col.finne():
... trykk (x)
'_id': ObjectId ('5F8F061CCB12C01F7420656F'), 'Navn': 'Mark', 'Id': 2, 'Grade': 5, 'Dob': '2020-04-09', 'alder': 8

Slippe en samling

Vi kan slippe en samling i MongoDB ved å bruke Drop () -metoden til Pymongo -modulen i Python. Først må vi koble oss til databasen; Deretter velger vi databasen som holder samlingen vi vil fjerne. Etter å ha valgt samlingen fra databasen, kan vi fjerne samlingen ved hjelp av Drop () -metoden. Følgende kode vil droppe studenter.

>>> Importer Pymongo
>>> klient = pymongo.MongoClient ('Mongodb: // localhost: 27017/')
>>> db = klient ['demo_db']
>>> col = db ['studenter']
>>> col.miste()

Konklusjon

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