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:
- MariaDB
- MySQL
- SQL szerver
- PostgreSQL
- Jóslat
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-pythonvagy
[email protected]: ~ $ sudo pip install mysql-connector-pythonAdatbá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 pymongovagy
[email protected]: ~ $ sudo pip3 install pymongoAdatbá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.