Piton

CRUD műveletek SQL és NoSQL adatbázisokba Python használatával

CRUD műveletek SQL és NoSQL adatbázisokba Python használatával
Két fő típusú adatbázis létezik egy alkalmazással: relációs adatbázisok (SQL) és nem relációs adatbázisok (NoSQL). Mindkettőt széles körben használják, de az egyik kiválasztása a tárolt adatok típusától függ. Négy alapvető művelet hajtható végre az adatbázisokon: létrehozás, olvasás, frissítés és törlés (CRUD).

Bármely programozási nyelv használatával kölcsönhatásba léphetünk az adatbázisokkal, vagy használhatunk olyan szoftver programot, amely lehetővé teszi számunkra, hogy GUI-val együttműködjünk az adatbázissal. Ebben a cikkben megvitatjuk az adatbázisokat, és megmutatjuk, hogyan lehet velük kölcsönhatásba lépni a Python programozási nyelv segítségével.

Relációs adatbázisok (SQL)

A relációs adatbázisok (SQL) a sémát tekintve különböznek a nem relációs adatbázisoktól (NoSQL). A séma egy sablon, amely meghatározza a tárolni kívánt adatok felépítését. Relációs adatbázisokban táblákat hozunk létre az adatok tárolására. A tábla sémája a tábla létrehozásakor kerül meghatározásra. Például, ha relációs adatbázisban akarunk adatokat tárolni a hallgatókról, akkor létrehozunk egy táblázatot a hallgatókról, és meghatározzuk a tábla sémáját, amely tartalmazhatja a nevet, a regisztrációs számot, az osztályzatot stb. minden tanuló. A séma létrehozása után az adatokat a táblázat soraiban tároljuk. Fontos megjegyezni, hogy nem tárolhatunk olyan adatokat, amelyek nincsenek meghatározva a sémában. Ebben a példában a vizsgán kapott osztályzat nem tárolható a táblázatban, mert nem definiáltunk oszlopot ezekhez az adatokhoz a sémában.

A következő lista néhány népszerű relációs adatbázist tartalmaz:

Nem relációs adatbázisok (NoSQL)

Mint fentebb tárgyaltuk, a nem relációs adatbázisok nem rendelkeznek meghatározott sémával. A nem relációs adatbázisokban táblák helyett gyűjtemények találhatók, és ezek a gyűjtemények olyan dokumentumokat tartalmaznak, amelyek egyenértékűek a relációs adatbázis soraival. Például, ha nem relációs adatbázist akarunk létrehozni a tanulói adatok tárolásához, létrehozhatunk egy felhasználói gyűjteményt, és ebben a gyűjteményben minden hallgató számára tárolunk egy dokumentumot. Ezeknek a dokumentumoknak nincs meghatározott sémája, és minden tanuló számára mindent elmenthet.

CRUD műveletek végrehajtása MySQL-ben

Most megmutatjuk, hogyan léphet kapcsolatba a MySQL-lel a Python használatával.

A MySQL illesztőprogram telepítése Pythonhoz

A MySQL-hez a Python használatával való interakcióhoz először telepítenünk kell a MySQL illesztőprogramot a Pythonba.

[email protected]: ~ $ sudo pip3 install mysql-connector-python

vagy

[email protected]: ~ $ sudo pip install mysql-connector-python

Adatbázis létrehozása

Az adatbázis létrehozása előtt kapcsolatba kell lépnünk a MySQL szerverrel Python használatával. A mysql.csatlakozó modul a connect () metódust kínálja a kapcsolat létrehozásához a MySQL-lel a Python segítségével.

>>> importálja a mysql-t.csatlakozó
// Cserélje le saját IP és szerver hitelesítő adataival
>>> sql = mysql.csatlakozó.csatlakozni (
… Host = 'localhost',
… User = 'root',
… Jelszó = '12345'
…)
>>> nyomtatás (sql)

Ez az üzenet azt mutatja, hogy sikeresen létrehoztunk egy kapcsolatot egy MySQL adatbázissal a Python használatával. Most futtatunk egy SQL lekérdezést a MySQL szerveren a mysql execute () metódusával.csatlakozó modul.

>>> kurzor = sql.kurzor()
>>> query = 'DATABÁZIS LÉTREHOZÁSA demo_db'
>>> kurzor.végrehajt (lekérdezés)

A fenti kód egy demo_db nevű adatbázist hoz létre a MySQL-ben.

Tábla létrehozása

Most, hogy létrehoztunk egy adatbázist, létrehozunk egy új táblát, amelynek neve diákok lesz. Tábla létrehozásához csatlakoznunk kell az adatbázishoz.

>>> sql_db = mysql.csatlakozó.csatlakozni (
… Host = 'localhost',
… User = 'root',
… Jelszó = '12345',
… Adatbázis = 'demo_db'
…)

Miután csatlakozott az adatbázishoz, az execute () metódust használjuk egy SQL-lekérdezés futtatásához egy sémával rendelkező tábla létrehozásához.

>>> query = "CREATE TABLE hallgatók (név VARCHAR (64), id INT, INT évfolyam, dob DATE)";
>>> kurzor.végrehajtani (lekérdezés);

A fenti parancs létrehoz egy diák nevű táblázatot a demo_db adatbázisban; csak egy nevet, azonosítót, évfolyamot és születési dátumot szúrhatunk be a táblázatba, a séma szerint.

Sorok beszúrása egy táblázatba

Most, hogy létrehoztunk egy táblázatot, beillesztünk egy diákot ebbe a táblázatba. Létrehozunk egy lekérdezést, majd az execute () metódussal futtatjuk a lekérdezést a MySQL szerveren Python segítségével.

>>> lekérdezés = 'INSERT INTO students (name, id, grade, dob) VALUES ("John", 1, 3, "2020-7-04") "
>>> kurzor.végrehajt (lekérdezés)
>>> sql_db.elkövetni()

Ez a lekérdezés felvesz egy diákot a lekérdezésben meghatározott adatokkal a táblázatba. Ugyanígy további hallgatókat is felvehetünk az asztalba.

MEGJEGYZÉS: A változtatásokat csak akkor alkalmazzák az adatbázisban, ha az sql_db fájlt futtatja.elkötelezi magát () a változtatások alkalmazása után.

Sorok kiválasztása egy táblázatból

A MySQL-ben található SELECT utasítás segítségével adatokat lehet visszaadni egy táblából. A lekérdezés futtatásához az execute () metódust fogjuk használni, majd a fetchall () metódust használva megkapjuk az összes hallgató listáját. Ezután a for ciklust használhatjuk az összes diák megjelenítésére

>>> query = 'SELECT * FROM hallgatóktól'
>>> kurzor.végrehajt (lekérdezés)
>>> eredmény = kurzor.fetchall ()
>>> x az eredményhez:
… Nyomtatás (x)
('John', 1, 3, dátumidő.dátum (2020, 7., 4.)

Láthatjuk, hogy csak egyetlen tanuló adatai kerülnek visszaadásra, mivel a táblázatban csak egy tanuló van. A korlátozások megadásához használhatjuk a WHERE utasítást a MySQL-ben a SELECT utasítással. Például, ha csak a 4. évfolyamos tanulókat akarjuk visszaküldeni, akkor a következő lekérdezést használhatjuk:

>>> query = 'KIVÁLASZTÁS * A hallgatóktól, HOL osztályzat = 4'
>>> kurzor.végrehajt (lekérdezés)
>>> eredmény = kurzor.fetchall ()
>>> x az eredményhez:
… Nyomtatás (x)

A fenti kód csak a 4. osztályos tanulókat fogja letölteni.

Sor frissítése

Ebben a szakaszban megmutatjuk, hogyan frissítheti a MySQL tábla tanulói adatait a Python segítségével. Az UPDATE utasítással együtt a WHERE és a SET utasításokat használjuk a MySQL-ben, hogy frissítsük az egyes hallgatók adatait. A WHERE utasítással határozható meg, hogy mely sorok frissülnek, és a SET utasítással definiálják a frissítéshez használt értékeket.

>>> query = 'A tanulók frissítése SET név = "Megjelölés" WHERE id = 4'
>>> kurzor.végrehajt (lekérdezés)
>>> sql_db.elkövetni()

Most megpróbáljuk kiolvasni a diákok adatait a táblázatból a SELECT utasítás használatával.

>>> query = 'KIVÁLASZTÁS * A hallgatóktól WHERE id = 4'
>>> kurzor.végrehajt (lekérdezés)
>>> x kurzorhoz:
… Nyomtatás (x)
("Mark", 4, 4, dátumidő.dátum (2020, 7, 15)

Most láthatjuk, hogy a 4 azonosítójú tanuló neve Markra változott.

Sor törlése

Egy sort törölhetünk a táblázatból, ha a MySQL-ben a DELETE utasítást Python segítségével alkalmazzuk. A DELETE utasítással WHERE utasítással töröljük az egyes tanulókat a táblázatból.

>>> query = 'TÖRLÉS diákoktól, ahol id = 2'
>>> kurzor.végrehajt (lekérdezés)
>>> sql_db.elkövetni()

Most a SELECT utasítással visszaadhatjuk az összes diákot a táblából.

>>> query = 'SELECT * FROM hallgatóktól'
>>> kurzor.végrehajt (lekérdezés)
>>> x kurzorhoz:
… Nyomtatás (x)
('John', 1, 3, dátumidő.dátum (2020, 7., 4.)
('John', 3, 3, dátumidő.dátum (2020, 7, 8)
("Mark", 4, 4, dátumidő.dátum (2020, 7, 15)

Láthatjuk, hogy a táblázat nem tartalmaz 2 azonosítójú diákot, mivel eltávolítottuk a diákot az asztalról.

Asztal eldobása

A mysql.csatlakozó modul asztali ledobásra is használható. A DROP utasítást a MySQL-ben az execute () metódus segítségével hajthatjuk végre.

>>> kurzor = sql_db.kurzor()
>>> query = 'DROP TABLE hallgatók'
>>> kurzor.végrehajt (lekérdezés)

A fenti kód törli a hallgatók nevű táblázatot, amikor Python-ban végrehajtja.

Ezzel lezárul az SQL adatbázisokról folytatott megbeszélésünk. Megmutattuk, hogyan lehet különféle lekérdezéseket alkalmazni a MySQL adatbázisba a Python használatával. Ezután CRUD műveleteket alkalmazunk a NoSQL MongoDB nevű adatbázisra

CRUD műveletek végrehajtása a MongoDB-ben

A MongoDB-vel való Python használatával való interakcióhoz először telepítenünk kell a pymongót, amely a Python MongoDB illesztőprogramja.

[e-mail védett]: ~ $ sudo pip install pymongo

vagy

[email protected]: ~ $ sudo pip3 install pymongo

Adatbázis létrehozása

A MongoDB-hez a pongongo modul MongoClient () módszerével csatlakozhatunk. Mielőtt bármilyen műveletet végrehajtanánk, csatlakoznunk kell a MongoDB adatbázishoz.

>>> import pymongo
>>> kliens = pymongo.MongoClient ('mongodb: // localhost: 27017 /')

Miután csatlakoztunk az adatbázishoz, a következő sort futtathatjuk egy új adatbázis létrehozásához, amelynek neve demo_db.

>>> db = kliens ['demo_db']

Ha az adatbázis már létezik, akkor ezt a parancsot figyelmen kívül hagyják.

Gyűjtemény létrehozása

Most, hogy létrehoztunk egy adatbázist, létrehozunk egy diák nevű gyűjteményt a megnevezett adatbázisban.

>>> import pymongo
>>> kliens = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = kliens ['demo_db']
>>> col = db ['hallgatók']

MEGJEGYZÉS: A MongoDB csak akkor hoz létre gyűjteményt, ha beírja az adatokat. Ezért, ha megpróbálja elérni a gyűjteményt a fenti kód futtatása után, akkor azt tapasztalja, hogy nincs semmi az adatbázisban.

Unline MySQL, új gyűjtemény létrehozásakor nem kell sémát definiálnunk, mivel a MongoDB egy nem relációs adatbázis.

Dokumentum beszúrása

Gyűjtemény létrehozása után beilleszthetünk egy dokumentumot a gyűjteménybe. Először meg kell határoznunk egy szótárat, majd az insert_one () metódus segítségével beilleszthetjük a szótárban meghatározott adatokat a gyűjteménybe.

MEGJEGYZÉS: A MongoDB automatikusan létrehoz egy egyedi „_id” -t minden dokumentumhoz; ezért nem kell megadnunk egy azonosítót.

>>> adatok =
… "Név": "John",
… "Fokozat": 3,
… "Dob": "2020-04-03"

>>> eredmény = oszlop.insert_one (adatok)

A fenti dokumentumba beillesztettük a nevet, az érdemjegyet és a sz. Most beillesztünk egy dokumentumot a hallgatói gyűjteménybe, amelyben van egy mező az életkornak.

>>> adatok =
… "Név": "Mark",
… "Fokozat": 4,
… "Dob": "2020-04-09",
… "Életkor": 8

>>> eredmény = oszlop.insert_one (adatok)

Láthatjuk, hogy ez a parancs nem dob hibát. Mivel a MongoDB egy nem relációs adatbázis, bármilyen szükséges információt felvehetünk a dokumentumba.

Dokumentumok beszerzése

Ebben a szakaszban a find () és a find_one () metódusokkal fogjuk felhasználni az adatokat az adatbázisból. A find () metódusnak két argumentuma van: az elsőt a dokumentumok szűrésére, a másodikat a visszaadni kívánt dokumentum mezőinek meghatározására használják. Például, ha meg akarjuk kapni a „John” azonosítóját, akkor a következő lekérdezést futtathatjuk:

>>> eredmény = oszlop.keresés ("név": "John", "_id": 1)
>>> x eredményre:
… Nyomtatás (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Alternatív megoldásként az összes dokumentumot megszerezhetjük a gyűjteményből a következő lekérdezés használatával:

>>> eredmény = oszlop.megtalálja()
>>> x az eredményhez:
… Nyomtatás (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

Dokumentumok frissítése

A pymongo modul az update_one () és az update_many () módszereket kínálja a gyűjteményben lévő dokumentumok frissítéséhez. Mindkét módszer két érvet tartalmaz: az első meghatározza, hogy melyik dokumentumot kell megváltoztatni, a második pedig az új értékeket. Most megváltoztatjuk a „Mark” tanuló osztályzatát.

>>> query = "név": "Megjelölés"
>>> value = "$ set": "évfolyam": 5
>>> oszlop.update_one (lekérdezés, érték)
>>> x-re oszlopban.megtalálja():
… Nyomtatás (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

Dokumentum törlése

A Python pymongo moduljának két módszere van, azaz.e., delete_one () és delete_many (), a dokumentumok törléséhez. Mindkét módszer tartalmaz egy argumentumot, amely kiválasztja a törölni kívánt dokumentumot. A következő kóddal törölünk egy „John” nevű diákot.

>>> query = "név": "John"
>>> oszlop.delete_one (lekérdezés)
>>> x-re oszlopban.megtalálja():
… Nyomtatás (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Gyűjtemény eldobása

A Pythonban található pymongo modul drop () metódusának felhasználásával dobhatunk egy gyűjteményt a MongoDB-be. Először csatlakoznunk kell az adatbázishoz; majd kiválasztjuk az eltávolítani kívánt gyűjteményt tároló adatbázist. Miután kiválasztottuk a gyűjteményt az adatbázisból, a drop () módszerrel eltávolíthatjuk a gyűjteményt. A következő kód eldobja a hallgatókat.

>>> import pymongo
>>> kliens = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = kliens ['demo_db']
>>> col = db ['hallgatók']
>>> oszlop.csepp()

Következtetés

Az adatbázisok ismerete elengedhetetlen, ha webalkalmazást szeretne készíteni. Szinte minden programozási nyelv rendelkezik keretrendszerekkel és könyvtárakkal a háttér-webfejlesztéshez. A Python használható a háttér-webfejlesztésben, így kölcsönhatásba léphetünk a Python használatával az adatbázisokkal, miközben a Python háttér-keretrendszerekkel dolgozunk. Ebben a cikkben bemutattuk, hogyan lehet kölcsönhatásba lépni a MongoDB és a MySQL adatbázisokkal egyszerű Python-ban írt CRUD műveletek segítségével.

Ezekkel az ingyenes eszközökkel adja hozzá az egérmozdulatokat a Windows 10 rendszerhez
Az elmúlt években a számítógépek és az operációs rendszerek nagymértékben fejlődtek. Volt idő, amikor a felhasználóknak parancsokkal kellett navigálni...
Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...
A WinMouse segítségével testre szabhatja és javíthatja az egérmutató mozgását a Windows PC-n
Ha szeretné javítani az egérmutató alapértelmezett funkcióit, használjon ingyenes programokat WinMouse. További funkciókat kínál, amelyek segítenek ab...