Python

CRUD-operaatiot SQL- ja NoSQL-tietokantoihin Pythonin avulla

CRUD-operaatiot SQL- ja NoSQL-tietokantoihin Pythonin avulla
Sovelluksen kanssa voidaan käyttää kahta päätyyppistä tietokantaa: relaatiotietokannat (SQL) ja ei-relaatiotietokannat (NoSQL). Molempia käytetään laajalti, mutta yhden valitseminen riippuu tallennettavien tietojen tyypistä. Tietokannoissa voidaan suorittaa neljä perustoimintoa: luoda, lukea, päivittää ja poistaa (CRUD).

Voimme olla vuorovaikutuksessa tietokantojen kanssa minkä tahansa ohjelmointikielen avulla tai voimme käyttää ohjelmistoa, jonka avulla voimme olla vuorovaikutuksessa tietokannan kanssa käyttöliittymän avulla. Tässä artikkelissa keskustelemme tietokannoista ja näytämme sinulle, kuinka olla vuorovaikutuksessa niiden kanssa Python-ohjelmointikielellä.

Relaatiotietokannat (SQL)

Relaatiotietokannat (SQL) eroavat kaavaltaan ei-relaatiotietokannoista (NoSQL). Kaavio on malli, joka määrittää tallennettavien tietojen rakenteen. Relaatiotietokannoissa luomme taulukoita tietojen tallentamiseksi. Taulukon kaava määritetään, kun taulukko luodaan. Esimerkiksi, jos haluamme tallentaa tietoja opiskelijoista relaatiotietokantaan, luomme taulukon opiskelijoista ja määrittelemme taulukon kaavan, joka voi sisältää nimen, rekisteröintinumeron, arvosanan jne. jokaisen opiskelijan. Kaavion luomisen jälkeen tallennamme tiedot taulukon riveille. On tärkeää huomata, että emme voi tallentaa tietoja, joita ei ole määritelty skeemassa. Tässä esimerkissä opiskelijan kokeeseen saamaa arvosanaa ei voida tallentaa taulukkoon, koska emme ole määrittäneet saraketta näille tiedoille skeemassa.

Seuraava luettelo sisältää joitain suosittuja relaatiotietokantoja:

Ei-relaatiotietokannat (NoSQL)

Kuten edellä keskusteltiin, ei-relaatiotietokannoissa ei ole määriteltyä kaavaa. Ei-relaatiotietokannoissa on taulukoiden sijasta kokoelmia, ja nämä kokoelmat sisältävät asiakirjoja, jotka vastaavat relaatiotietokannan rivejä. Esimerkiksi, jos haluamme luoda ei-relaatiotietokannan opiskelijatietojen tallentamiseksi, voimme luoda kokoelman käyttäjiä ja tässä kokoelmassa tallennamme asiakirjan jokaiselle opiskelijalle. Näillä asiakirjoilla ei ole määriteltyä mallia, ja voit tallentaa haluamasi kullekin opiskelijalle.

CRUD-operaatioiden suorittaminen MySQL: ssä

Nyt näytämme sinulle, kuinka olla vuorovaikutuksessa MySQL: n kanssa Pythonin avulla.

MySQL-ohjaimen asentaminen Pythonille

Jos haluat olla vuorovaikutuksessa MySQL: n kanssa Pythonin avulla, meidän on ensin asennettava MySQL-ohjain Pythoniin.

[sähköposti suojattu]: ~ $ sudo pip3 install mysql-connector-python

tai

[sähköposti suojattu]: ~ $ sudo pip install mysql-connector-python

Tietokannan luominen

Ennen tietokannan luomista meidän on muodostettava yhteys MySQL-palvelimeen Pythonin avulla. MySQL.liitinmoduuli tarjoaa connect () -menetelmän yhteyden muodostamiseksi MySQL: iin Pythonin avulla.

>>> tuo mysql.liitin
// Korvaa omilla IP- ja palvelintunnuksillasi
>>> sql = mysql.liitin.kytkeä(
… Isäntä = 'paikallinen isäntä',
… Käyttäjä = 'root',
… Salasana = '12345'
…)
>>> tulosta (sql)

Tämä viesti osoittaa, että olemme onnistuneesti luoneet yhteyden MySQL-tietokantaan Pythonin avulla. Suoritamme nyt SQL-kyselyn MySQL-palvelimella käyttäen mysqlin execute () -menetelmää.liitinmoduuli.

>>> kohdistin = neliö.kohdistin ()
>>> kysely = Luo tietokanta demo_db
>>> kohdistin.suorittaa (kysely)

Yllä oleva koodi luo tietokannan nimeltä demo_db MySQL: ssä.

Taulukon luominen

Nyt kun olemme luoneet tietokannan, luomme uuden taulukon nimeltä opiskelijat. Taulukon luomiseksi meidän on muodostettava yhteys tietokantaan.

>>> sql_db = mysql.liitin.kytkeä(
… Isäntä = 'paikallinen isäntä',
… Käyttäjä = 'root',
… Salasana = '12345',
… Tietokanta = 'demo_db'
…)

Yhteyden muodostamisen jälkeen tietokantaan käytämme execute () -menetelmää SQL-kyselyn luomiseen taulukon luomiseksi skeemalla.

>>> query = "LUO TAULUKKO-opiskelijat (nimi VARCHAR (64), id INT, palkkaluokka INT, poissa DATE)";
>>> kohdistin.suorittaa (kysely);

Yllä oleva komento luo taulukon nimeltä opiskelijat demo_db-tietokantaan; Voimme lisätä taulukkoon vain nimen, tunnuksen, palkkaluokan ja syntymäajan kaavion mukaisesti.

Rivien lisääminen taulukkoon

Nyt kun olemme luoneet taulukon, lisätään opiskelija tähän taulukkoon. Luomme kyselyn ja suoritamme sitten execute () -menetelmän kyselyn suorittamiseksi MySQL-palvelimella Pythonin avulla.

>>> kysely = 'INSERT INTO students (name, id, grade, dob) ARVOT ("John", 1, 3, "2020-7-04")'
>>> kohdistin.suorittaa (kysely)
>>> sql_db.tehdä()

Tämä kysely lisää taulukkoon opiskelijan, jolla on kyselyssä määritellyt tiedot. Voimme lisätä muita opiskelijoita taulukkoon samalla tavalla.

HUOMAUTUS: Muutoksia tehdään tietokantaan vain, jos suoritat sql_db.sitoutumaan () muutosten soveltamisen jälkeen.

Rivien valitseminen taulukosta

MySQL: n SELECT-käskyä käytetään tietojen palauttamiseen taulukosta. Käytämme execute () -menetelmää kyselyn suorittamiseen ja sitten fetchall () -menetelmää saadaksemme luettelon kaikista opiskelijoista. Sitten voimme käyttää for for -silmukkaa näyttääksesi kaikki opiskelijat

>>> kysely = 'VALITSE * FROM opiskelijoista'
>>> kohdistin.suorittaa (kysely)
>>> tulos = kohdistin.fetchall ()
>>> x tulokselle:
… Tulosta (x)
('John', 1, 3, päivämäärä.päivämäärä (2020, 7, 4))

Voimme nähdä, että vain yhden opiskelijan tiedot palautetaan, koska taulukossa on vain yksi opiskelija. Voimme käyttää MySQL: n WHERE-käskyä SELECT-käskyn kanssa rajoitteiden määrittämiseksi. Esimerkiksi, jos haluamme palauttaa vain luokan 4 opiskelijat, voimme käyttää seuraavaa kyselyä:

>>> kysely = 'VALITSE * OPISKELIJOIDEN MISSÄ arvosana = 4'
>>> kohdistin.suorittaa (kysely)
>>> tulos = kohdistin.fetchall ()
>>> x tulokselle:
… Tulosta (x)

Yllä oleva koodi hakee vain luokan 4 oppilaat.

Rivin päivittäminen

Tässä osiossa näytämme sinulle, kuinka opiskelijatiedot päivitetään MySQL-taulukossa Pythonin avulla. Käytämme MySQL: n UPDATE-käskyä WHERE- ja SET-käskyjen kanssa tiettyjen opiskelijoiden tietojen päivittämiseen. WHERE-käskyä käytetään määrittämään, mitkä rivit päivitetään, ja SET-käskyä käytetään määrittämään päivitykseen käytetyt arvot.

>>> query = 'PÄIVITÄ opiskelijoiden SET-nimi = "Merkitse" WHERE id = 4'
>>> kohdistin.suorittaa (kysely)
>>> sql_db.tehdä()

Yritämme nyt lukea opiskelijan tiedot taulukosta SELECT-käskyn avulla.

>>> kysely = 'VALITSE * OPISKELIJOITA MISSÄ id = 4'
>>> kohdistin.suorittaa (kysely)
>>> x kohdistimessa:
… Tulosta (x)
('Mark', 4, 4, päivämäärä.päivämäärä (2020, 7, 15))

Nyt voimme nähdä, että opiskelijan, jolla on tunnus 4, nimi on muutettu Markiksi.

Rivin poistaminen

Voimme poistaa rivin taulukosta soveltamalla DELETE-käskyä MySQL: ssä Pythonin avulla. Poistamme tietyt opiskelijat taulukosta käyttämällä DELETE-käskyä WHERE-käskyn kanssa.

>>> query = 'POISTA opiskelijoilta, missä id = 2'
>>> kohdistin.suorittaa (kysely)
>>> sql_db.tehdä()

Nyt voimme palauttaa kaikki opiskelijat taulukosta käyttämällä SELECT-käskyä.

>>> kysely = 'VALITSE * FROM opiskelijoista'
>>> kohdistin.suorittaa (kysely)
>>> x kohdistimessa:
… Tulosta (x)
('John', 1, 3, päivämäärä.päivämäärä (2020, 7, 4))
('John', 3, 3, päivämäärä.päivämäärä (2020, 7, 8))
('Mark', 4, 4, päivämäärä.päivämäärä (2020, 7, 15))

Voimme nähdä, että taulukossa ei ole opiskelijaa, jonka tunnus on 2, koska olemme poistaneet opiskelijan pöydästä.

Pöydän pudottaminen

MySQL.liitinmoduulia voidaan käyttää myös pöydän pudottamiseen. Voimme suorittaa DROP-käskyn MySQL: ssä käyttämällä execute () -menetelmää.

>>> kohdistin = sql_db.kohdistin ()
>>> query = 'PUDOTUSTAULUKKO-opiskelijat'
>>> kohdistin.suorittaa (kysely)

Yllä oleva koodi poistaa taulukon nimeltä opiskelijat, kun se suoritetaan Pythonissa.

Tämä päättää keskustelun SQL-tietokannoista. Olemme osoittaneet, kuinka voit käyttää erilaisia ​​kyselyitä MySQL-tietokantaan Pythonin avulla. Seuraavaksi sovellamme CRUD-toimintoja NoSQL-tietokantaan nimeltä MongoDB

CRUD-operaatioiden suorittaminen MongoDB: ssä

Jos haluat olla vuorovaikutuksessa MongoDB: n kanssa Pythonin avulla, meidän on ensin asennettava pymongo, joka on MongoDB-ohjain Pythonille.

[sähköposti suojattu]: ~ $ sudo pip install pymongo

tai

[sähköposti suojattu]: ~ $ sudo pip3 install pymongo

Tietokannan luominen

Voimme muodostaa yhteyden MongoDB: hen käyttämällä MongoDB: n pymongo-moduulin MongoClient () -menetelmää. Ennen minkään toiminnon suorittamista meidän on muodostettava yhteys MongoDB-tietokantaan.

>>> tuo pymongo
>>> asiakas = pymongo.MongoClient ('mongodb: // paikallinen isäntä: 27017 /')

Kun olemme muodostaneet yhteyden tietokantaan, voimme suorittaa seuraavan rivin luomaan uuden tietokannan nimeltä demo_db.

>>> db = asiakas ['demo_db']

Jos tietokanta on jo olemassa, tämä komento jätetään huomioimatta.

Kokoelman luominen

Nyt kun olemme luoneet tietokannan, luomme kokoelma nimeltä opiskelijat nimettyyn tietokantaan.

>>> tuo pymongo
>>> asiakas = pymongo.MongoClient ('mongodb: // paikallinen isäntä: 27017 /')
>>> db = asiakas ['demo_db']
>>> col = db ['opiskelijat']

HUOMAUTUS: MongoDB ei luo kokoelmaa, ennen kuin syötät siihen tietoja. Siksi, jos yrität käyttää kokoelmaa yllä olevan koodin suorittamisen jälkeen, huomaat, että tietokannassa ei ole mitään.

MySQL-vuoraamaton, meidän ei tarvitse määritellä mallia luodessamme uutta kokoelmaa, koska MongoDB on ei-relaatiotietokanta.

Asiakirjan lisääminen

Kokoelman luomisen jälkeen voimme lisätä asiakirjan kokoelmaan. Ensinnäkin meidän on määriteltävä sanakirja, ja sitten voimme lisätä insert_one () -metodilla sanakirjassa määriteltyjen tietojen lisäämiseksi kokoelmaan.

HUOMAUTUS: MongoDB luo automaattisesti yksilöllisen _id: n jokaiselle asiakirjalle; siksi meidän ei tarvitse määrittää tunnusta.

>>> data =
… "Nimi": "John",
… "Palkkaluokka": 3,
… "Dob": "2020-04-03"

>>> tulos = col.insert_one (data)

Lisäsimme yllä olevaan asiakirjaan nimen, arvosanan ja arvonimen. Lisätään nyt opiskelijakokoelmaan asiakirja, jossa on kenttä iän mukaan.

>>> data =
… "Nimi": "Merkitse",
… "Arvosana": 4,
… "Dob": "2020-04-09",
… "Ikä": 8

>>> tulos = col.insert_one (data)

Voimme nähdä, että tämä komento ei heitä virhettä. Koska MongoDB on ei-relaatiotietokanta, voimme lisätä haluamasi tiedot asiakirjaan.

Asiakirjojen saaminen

Tässä osassa käytämme find () - ja find_one () -menetelmiä saadaksesi tietoja tietokannasta. Löydä () -menetelmällä on kaksi argumenttia: ensimmäistä käytetään asiakirjojen suodattamiseen ja toista käytetään palautettavan asiakirjan kenttien määrittelemiseen. Esimerkiksi, jos haluamme saada John-tunnuksen, voimme suorittaa seuraavan kyselyn:

>>> tulos = col.etsi ("nimi": "John", "_id": 1)
>>> x tulokselle:
… Tulosta (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Vaihtoehtoisesti voimme saada kaikki asiakirjat kokoelmasta seuraavan kyselyn avulla:

>>> tulos = col.löytö()
>>> x tulokselle:
… Tulosta (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

Asiakirjojen päivittäminen

Pymongo-moduuli tarjoaa update_one () ja update_many () -menetelmiä kokoelman asiakirjojen päivittämiseen. Molemmissa menetelmissä on kaksi argumenttia: ensimmäinen määrittelee muutettavan asiakirjan ja toinen uudet arvot. Nyt vaihdamme opiskelijan arvosanan Mark.

>>> query = "nimi": "Merkitse"
>>> arvo = "$ set": "arvosana": 5
>>> col.update_one (kysely, arvo)
>>> x: lle sarakkeessa.löytö():
… Tulosta (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

Asiakirjan poistaminen

Pythonin pymongo-moduulilla on kaksi tapaa, ts.e., delete_one () ja delete_many () asiakirjojen poistamiseen. Molemmat menetelmät ottavat argumentin, joka valitsee poistettavan asiakirjan. Seuraavan koodin avulla poistamme oppilaan nimeltä John.

>>> query = "nimi": "John"
>>> col.delete_one (kysely)
>>> x: lle sarakkeessa.löytö():
… Tulosta (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Kokoelman pudottaminen

Voimme pudottaa kokoelman MongoDB: hen käyttämällä Pythonin pymongo-moduulin drop () -menetelmää. Ensinnäkin meidän on muodostettava yhteys tietokantaan; sitten valitsemme tietokannan, joka pitää poistettavan kokoelman. Valittuamme kokoelman tietokannasta voimme poistaa kokoelman drop () -menetelmällä. Seuraava koodi pudottaa opiskelijat.

>>> tuo pymongo
>>> asiakas = pymongo.MongoClient ('mongodb: // paikallinen isäntä: 27017 /')
>>> db = asiakas ['demo_db']
>>> col = db ['opiskelijat']
>>> col.pudota()

Johtopäätös

Tietokantojen tuntemus on välttämätöntä, jos haluat tehdä verkkosovelluksen. Lähes jokaisella ohjelmointikielellä on kehykset ja kirjastot verkkokehitystä varten. Pythonia voidaan käyttää backend-verkkokehityksessä, joten voimme olla vuorovaikutuksessa tietokantojen kanssa Pythonia käyttäessäsi Python-taustakehyksiä. Tässä artikkelissa näytimme sinulle, kuinka olla vuorovaikutuksessa MongoDB- ja MySQL-tietokantojen kanssa käyttämällä yksinkertaisia ​​CRUD-operaatioita, jotka on kirjoitettu Pythoniin.

Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...
League of Legendsin asentaminen Ubuntu 14 een.04
Jos olet League of Legendsin fani, tämä on sinulle mahdollisuus testata League of Legendsia. Huomaa, että PlayOnLinux tukee LOLia, jos olet linux-käyt...
Asenna uusin OpenRA-strategiapeli Ubuntu Linuxiin
OpenRA on ilmainen / ilmainen reaaliaikainen strategiapelimoottori, joka luo uudet Westwood-pelit, kuten klassinen Command & Conquer: Red Alert. Hajau...