„Python“

CRUD operacijos SQL ir NoSQL duomenų bazėse naudojant „Python“

CRUD operacijos SQL ir NoSQL duomenų bazėse naudojant „Python“
Yra dvi pagrindinės duomenų bazių rūšys, kurias galima naudoti kartu su programa: reliacinės duomenų bazės (SQL) ir nereliacinės duomenų bazės (NoSQL). Abi yra plačiai naudojamos, tačiau jų pasirinkimas priklauso nuo saugomų duomenų tipo. Duomenų bazėse galima atlikti keturias pagrindines operacijas: kurti, skaityti, atnaujinti ir ištrinti (CRUD).

Mes galime bendrauti su duomenų bazėmis naudodami bet kurią programavimo kalbą arba galime naudoti programinę įrangą, leidžiančią mums sąveikauti su duomenų baze naudojant GUI. Šiame straipsnyje aptarsime duomenų bazes ir parodysime, kaip su jomis bendrauti naudojant „Python“ programavimo kalbą.

Reliacinės duomenų bazės (SQL)

Reliacinės duomenų bazės (SQL) pagal schemą skiriasi nuo nereliacinių duomenų bazių (NoSQL). Schema yra šablonas, apibūdinantis saugomų duomenų struktūrą. Reliacinėse duomenų bazėse kuriame lenteles duomenims saugoti. Lentelės schema apibrėžiama kuriant lentelę. Pavyzdžiui, jei norime laikyti studentų duomenis reliacinėje duomenų bazėje, sukursime studentų lentelę ir apibrėžsime lentelės schemą, kurioje gali būti vardas, registracijos numeris, pažymys ir kt. kiekvieno studento. Sukūrę schemą, duomenis saugosime lentelės eilutėse. Svarbu pažymėti, kad negalime saugoti schemoje neapibrėžtų duomenų. Šiame pavyzdyje pažymys, kurį studentas gavo per egzaminą, negali būti išsaugotas lentelėje, nes mes schemoje neapibrėžėme šių duomenų stulpelio.

Šiame sąraše yra keletas populiarių reliacinių duomenų bazių:

Nesantykinės duomenų bazės (NoSQL)

Kaip aptarta aukščiau, ne reliacinėse duomenų bazėse nėra apibrėžtos schemos. Ne reliacinėse duomenų bazėse yra kolekcijos, o ne lentelės, ir šiose kolekcijose yra dokumentų, kurie yra lygiaverčiai reliacinės duomenų bazės eilutėms. Pvz., Jei norime sukurti ne reliacinę duomenų bazę studentų duomenims laikyti, galime sukurti vartotojų kolekciją ir šioje kolekcijoje išsaugosime dokumentą kiekvienam studentui. Šiuose dokumentuose nėra apibrėžtos schemos ir kiekvienam studentui galite išsaugoti viską, ko norite.

CRUD operacijų atlikimas MySQL

Dabar mes parodysime, kaip bendrauti su „MySQL“ naudojant „Python“.

„MySQL“ tvarkyklės, skirtos „Python“, diegimas

Norėdami bendrauti su „MySQL“ naudodami „Python“, pirmiausia turime įdiegti „MySQL“ tvarkyklę į „Python“.

[apsaugotas el. paštas]: ~ $ sudo pip3 įdiekite mysql-connector-python

arba

[apsaugotas el. pašto adresas]: ~ $ sudo pip install mysql-connector-python

Duomenų bazės kūrimas

Prieš kurdami duomenų bazę, turime prisijungti prie „MySQL“ serverio naudodami „Python“. „MySQL“.jungčių modulis siūlo prisijungimo () metodą, kuris padės užmegzti ryšį su MySQL naudojant „Python“.

>>> importuoti mysql.jungtis
// Pakeiskite savo pačių IP ir serverio kredencialais
>>> sql = mysql.jungtis.Prisijungti(
... host = 'localhost',
... vartotojas = 'šaknis',
... slaptažodis = '12345'
…)
>>> spausdinti (kvl)

Šis pranešimas rodo, kad naudodami „Python“ sėkmingai sukūrėme ryšį su „MySQL“ duomenų baze. Dabar vykdysime SQL užklausą MySQL serveryje naudodami „mysql“ metodą „execute“).jungties modulis.

>>> žymeklis = kvadratas.žymeklis ()
>>> užklausa = 'SUKURTI DUOMENŲ BAZAS demo_db'
>>> žymeklis.vykdyti (užklausa)

Minėtas kodas sukurs „MySQL“ duomenų bazę, pavadintą „demo_db“.

Lentelės kūrimas

Dabar, sukūrę duomenų bazę, sukursime naują lentelę, pavadintą studentai. Norėdami sukurti lentelę, turime prisijungti prie duomenų bazės.

>>> sql_db = mysql.jungtis.Prisijungti(
... host = 'localhost',
... vartotojas = 'šaknis',
... slaptažodis = '12345',
... duomenų bazė = 'demo_db'
…)

Prisijungę prie duomenų bazės, naudosime metodą execute () SQL užklausai paleisti, kad sukurtume lentelę su schema.

>>> query = "SUKURTI STALO mokinius (vardas VARCHAR (64), id INT, INT laipsnis, dob DATE)";
>>> žymeklis.vykdyti (užklausą);

Aukščiau nurodyta komanda sukurs lentelę studentais, esančiais „demo_db“ duomenų bazėje; į lentelę galime įterpti tik vardą, asmens kodą, laipsnį ir gimimo datą, kaip apibrėžta schemoje.

Eilučių įterpimas į lentelę

Dabar, sukūrę lentelę, į šią lentelę įterpsime mokinį. Mes sukursime užklausą ir tada naudosime „execute“ () metodą, kad užklausa būtų vykdoma „MySQL“ serveryje naudojant „Python“.

>>> query = 'INSERT INTO students (name, id, grade, dob) VERTYBĖS („Jonas“, 1, 3, „2020-7-04“) “
>>> žymeklis.vykdyti (užklausa)
>>> sql_db.įsipareigoti ()

Ši užklausa pridės studentą su užklausoje apibrėžtais duomenimis į lentelę. Mes taip pat galime pridėti papildomų studentų prie lentelės.

PASTABA: Pakeitimai bus taikomi duomenų bazei tik tada, jei vykdote sql_db.įsipareigoti () pritaikius pakeitimus.

Eilučių pasirinkimas iš lentelės

„MySQL“ sakinys „SELECT“ naudojamas duomenims iš lentelės grąžinti. Užklausai vykdyti naudosime metodą execute (), tada naudosime metodą fetchall (), kad gautume visų mokinių sąrašą. Tada mes galime naudoti „for loop“, kad parodytume visus studentus

>>> užklausa = 'PASIRINKTI * IŠ studentų'
>>> žymeklis.vykdyti (užklausa)
>>> rezultatas = žymeklis.fetchall ()
>>> x rezultate:
… Spausdinti (x)
('Jonas', 1, 3, laikas.data (2020, 7, 4))

Matome, kad grąžinami tik vieno studento duomenys, nes lentelėje turime tik vieną studentą. Apribojimams nurodyti galime naudoti WHERE teiginį MySQL su SELECT sakiniu. Pvz., Jei norime grąžinti tik 4 klasės mokinius, galime naudoti šią užklausą:

>>> užklausa = 'PASIRINKITE * IŠ studentų, kur klasė = 4'
>>> žymeklis.vykdyti (užklausa)
>>> rezultatas = žymeklis.fetchall ()
>>> x rezultate:
… Spausdinti (x)

Aukščiau pateiktas kodas atneš tik 4 klasės mokinius.

Eilutės atnaujinimas

Šiame skyriuje parodysime, kaip atnaujinti mokinių duomenis „MySQL“ lentelėje naudojant „Python“. Norėdami atnaujinti konkrečių studentų duomenis, naudosime „UPDATE“ teiginį su WHERE ir SET teiginiais „MySQL“. WHERE sakinys naudojamas nustatant, kurios eilutės bus atnaujintos, o SET sakinys naudojamas apibrėžiant atnaujinimui naudojamas vertes.

>>> query = 'ATNAUJINTI studentų SET pavadinimą = "Pažymėti" WHERE id = 4'
>>> žymeklis.vykdyti (užklausa)
>>> sql_db.įsipareigoti ()

Dabar bandysime perskaityti studento duomenis iš lentelės naudodami SELECT sakinį.

>>> užklausa = 'PASIRINKITE * IŠ studentų, kur id = 4'
>>> žymeklis.vykdyti (užklausa)
>>> žymekliui x:
… Spausdinti (x)
(„Pažymėti“, 4, 4, laiko laikas.data (2020, 7, 15))

Dabar matome, kad studento, kurio ID yra 4, vardas pakeistas į Marką.

Eilutės trynimas

Lentelės eilutę galime ištrinti taikydami „DELETE“ sakinį MySQL naudodami „Python“. Norėdami ištrinti konkrečius studentus iš lentelės, naudosime teiginį DELETE su WHERE sakiniu.

>>> query = 'Ištrinti iš studentų, kur id = 2'
>>> žymeklis.vykdyti (užklausa)
>>> sql_db.įsipareigoti ()

Dabar mes galime grąžinti visus studentus iš lentelės naudodami SELECT sakinį.

>>> užklausa = 'PASIRINKTI * IŠ studentų'
>>> žymeklis.vykdyti (užklausa)
>>> žymekliui x:
… Spausdinti (x)
('Jonas', 1, 3, laikas.data (2020, 7, 4))
(„Jonas“, 3, 3, laikas.data (2020, 7, 8))
(„Pažymėti“, 4, 4, laiko laikas.data (2020, 7, 15))

Matome, kad lentelėje nėra studento, kurio ID yra 2, nes mes pašalinome studentą iš lentelės.

Stalo numetimas

„MySQL“.jungties modulis taip pat gali būti naudojamas stalo numetimui. DROP sakinį galime įvykdyti MySQL naudodami metodą execute ().

>>> žymeklis = sql_db.žymeklis ()
>>> užklausa = 'NUŠALINTI STALĄ studentams'
>>> žymeklis.vykdyti (užklausa)

Aukščiau pateiktas kodas ištrins lentelę, pavadintą studentai, kai bus vykdoma „Python“.

Tuo baigiama mūsų diskusija apie SQL duomenų bazes. Mes parodėme, kaip pritaikyti skirtingas užklausas „MySQL“ duomenų bazei naudojant „Python“. Tada mes pritaikysime CRUD operacijas „NoSQL“ duomenų bazėje, vadinamoje „MongoDB“

CRUD operacijų atlikimas MongoDB

Norėdami bendrauti su „MongoDB“ naudodami „Python“, pirmiausia turime įdiegti „pymongo“, kuris yra „Python“ „MongoDB“ tvarkyklė.

[apsaugotas el. paštas]: ~ $ sudo pip install pymongo

arba

[apsaugotas el. pašto adresas]: ~ $ sudo pip3 install pymongo

Duomenų bazės kūrimas

Mes galime prisijungti prie „MongoDB“ naudodami „MongoDB“ pymongo modulio MongoClient () metodą. Prieš atlikdami bet kokius veiksmus, turime prisijungti prie „MongoDB“ duomenų bazės.

>>> importuoti pymongo
>>> klientas = pymongo.„MongoClient“ („mongodb: // localhost: 27017 /“)

Prisijungę prie duomenų bazės, galime vykdyti šią eilutę, kad sukurtume naują duomenų bazę pavadinimu demo_db.

>>> db = klientas ['demo_db']

Jei duomenų bazė jau yra, ši komanda nepaisoma.

Kolekcijos kūrimas

Dabar, kai sukursime duomenų bazę, sukursime studentų pavadinimą, pavadintą duomenų bazėje.

>>> importuoti pymongo
>>> klientas = pymongo.„MongoClient“ („mongodb: // localhost: 27017 /“)
>>> db = klientas ['demo_db']
>>> col = db ['studentai']

PASTABA: „MongoDB“ nesukuria kolekcijos, kol į ją neįvedate duomenų. Todėl, jei bandysite pasiekti kolekciją, paleidę aukščiau nurodytą kodą, pamatysite, kad duomenų bazėje nėra nieko.

„MySQL“ neaprašyta, kuriant naują kolekciją nereikia apibrėžti schemos, nes „MongoDB“ yra nesusijusi duomenų bazė.

Dokumento įterpimas

Sukūrę kolekciją, mes galime įterpti dokumentą į kolekciją. Pirmiausia turime apibrėžti žodyną, tada mes galime naudoti metodą insert_one (), kad į rinkinį įterptume žodyne apibrėžtus duomenis.

PASTABA: „MongoDB“ kiekvienam dokumentui automatiškai sukuria unikalų „_id“; todėl mums nereikia nurodyti ID.

>>> duomenys =
... „vardas“: „Jonas“,
… „Pažymys“: 3,
… „Dob“: „2020-04-03“

>>> rezultatas = sp.įterpti_vieną (duomenys)

Pirmiau pateiktame dokumente įterpėme vardą, laipsnį ir laipsnį. Dabar į studentų kolekciją įmesime dokumentą, kuriame bus amžius.

>>> duomenys =
… „Vardas“: „Pažymėti“,
… „Klasė“: 4,
… „Dob“: „2020-04-09“,
... „amžius“: 8

>>> rezultatas = sp.įterpti_vieną (duomenys)

Matome, kad ši komanda nemeta klaidos. Kadangi „MongoDB“ yra nesusijusi duomenų bazė, į dokumentą galime įtraukti bet kokią norimą informaciją.

Kaip gauti dokumentus

Šiame skyriuje naudosime metodus „find ()“ ir „find_one“ (), kad gautume duomenis iš duomenų bazės. „Find ()“ metodui reikia dviejų argumentų: pirmasis naudojamas dokumentams filtruoti, o antrasis naudojamas apibrėžiant norimo grąžinti dokumento laukus. Pvz., Jei norime gauti „John“ ID, galime paleisti šią užklausą:

>>> rezultatas = sp.rasti ("vardas": "Jonas", "_id": 1)
>>> x rezultate:
… Spausdinti (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Arba visus dokumentus iš kolekcijos galime gauti naudodami šią užklausą:

>>> rezultatas = sp.rasti ()
>>> x rezultate:
… Spausdinti (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

Dokumentų atnaujinimas

„Pymongo“ modulis siūlo „update_one“ () ir „update_many“ () metodus, kaip atnaujinti kolekcijos dokumentus. Abiejuose metoduose naudojami du argumentai: pirmasis apibrėžia, kurį dokumentą keisti, o antrasis - naujas reikšmes. Dabar pakeisime studento pažymėjimą „Pažymėti“.

>>> query = "vardas": "Pažymėti"
>>> value = "$ set": "pažymys": 5
>>> sp.update_one (užklausa, vertė)
>>> x colyje.rasti ():
… Spausdinti (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

Dokumento trynimas

„Python“ modulis „pymongo“ turi du metodus, t.e., delete_one () ir delete_many (), skirti dokumentams ištrinti. Abiem būdais naudojamas argumentas, kuris parenka dokumentą, kurį norite ištrinti. Turėdami šį kodą, ištrinsime studentą, vardu „Jonas“.

>>> query = "vardas": "Jonas"
>>> sp.delete_one (užklausa)
>>> x colyje.rasti ():
… Spausdinti (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Mesti kolekciją

Kolekciją galime išmesti į „MongoDB“, naudodami „Python“ pymongo modulio drop () metodą. Pirma, mes turime prisijungti prie duomenų bazės; tada mes pasirenkame duomenų bazę, kurioje yra kolekcija, kurią norime pašalinti. Pasirinkę kolekciją iš duomenų bazės, ją galime pašalinti naudodami drop () metodą. Šis kodas atsisakys studentų.

>>> importuoti pymongo
>>> klientas = pymongo.„MongoClient“ („mongodb: // localhost: 27017 /“)
>>> db = klientas ['demo_db']
>>> col = db ['studentai']
>>> sp.numesti ()

Išvada

Žinios apie duomenų bazes yra būtinos, jei norite sukurti žiniatinklio programą. Beveik kiekvienoje programavimo kalboje yra pagrindai ir bibliotekos, skirtos interneto programinės įrangos kūrimui. „Python“ gali būti naudojamas kuriant „backend“ žiniatinklio programą, todėl dirbdami su „Python“ vidinės sistemos sistemomis galime bendrauti su duomenų bazėmis naudodami „Python“. Šiame straipsnyje mes parodėme, kaip bendrauti su „MongoDB“ ir „MySQL“ duomenų bazėmis, naudojant paprastas CRUD operacijas, parašytas „Python“.

5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...