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:
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.kontaktDenne 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 ()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(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)";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”)'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'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'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'Nå vil vi prøve å lese studentdataene fra tabellen ved å bruke Select -setningen.
>>> spørring = 'Velg * fra studenter der ID = 4'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'Nå kan vi returnere alle studentene fra bordet ved hjelp av Select -setningen.
>>> spørring = 'Velg * fra studenter'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 ()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 PymongoEtter å 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 PymongoMerk: 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 =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 =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)Alternativt kan vi få alle dokumentene fra samlingen ved å bruke følgende spørsmål:
>>> resultat = col.finne()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"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"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 PymongoKonklusjon
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.