Programozás

Az SQLite adatbázis használatának alapjai a Pythonban

Az SQLite adatbázis használatának alapjai a Pythonban

Az adatbázis az egyik leghasznosabb és legnépszerűbb fájl az adatok tárolására; bármilyen adat tárolására használhatók, beleértve a szöveget, számokat, képeket, bináris adatokat, fájlokat stb. Az SQLite egy relációs adatbázis-kezelő rendszer, amely az SQL nyelvre épül. Ez egy C könyvtár, és API-t biztosít más programozási nyelvekkel, például a Python-nal való együttműködéshez. Nem igényel külön kiszolgálói folyamat futtatását szükség szerint olyan nagy adatbázis-motorokban, mint a MySQL és a Postgresql.

Gyors és könnyű, és a teljes adatbázis egyetlen lemezfájlban van tárolva, ami hordozhatóvá teszi, például CSV vagy más adattároló fájlokként. Sok alkalmazás az SQLite-et használja a belső adattároláshoz, főleg olyan környezetekben, mint a mobileszközök vagy a kis alkalmazások.

SQLite adatbázis Pythonhoz

Vessünk egy mély merülést az SQLite-be a python programozási nyelvvel. Ebben az oktatóanyagban megtanuljuk az SQLite használatának előnyeit, a python sqlite3 modul alapjait, egy táblázat létrehozását egy adatbázisban, az adatok beszúrását a táblába, az adatok lekérdezését a táblából és a táblázat adatainak frissítését.

Az SQLite használatának előnyei

Az SQLite használatának fő előnyei:

Az SQLite a Google Chrome-ban a sütik, a felhasználói adatok és más fontos adatok, köztük a felhasználói jelszavak tárolására is használható. Az Android OS az SQLite-et is használja elsődleges adatbázis-motorjaként az adatok tárolására.

Python SQLite3 modul

Az SQLite használatához a Python telepítése szükséges a rendszerünkbe. Ha még nincs telepítve a Python a rendszerébe, akkor tekintse meg lépésenkénti útmutatónkat a Python Linux rendszerre történő telepítéséhez. Használhatnánk az SQLite-et a Python-ban a sqlite3 modul elérhető a Python szabványos könyvtárában. Gerhard Häring írta az sqlite3 modult; SQL-interfészt biztosít, amely kompatibilis a DB-API 2-vel.0. A Python szabványos könyvtárával előre telepítve van, ezért nem kell aggódnunk a további telepítés miatt.

Kapcsolat létrehozása adatbázissal

Az SQLite használatának Pythonban történő első lépése a kapcsolat létrehozása egy adatbázissal. Ezt úgy tehetjük meg, hogy az sqlite3 connect () metódusával létrehozunk egy kapcsolatot. Nézze meg a következő kódot. Egyszerűen átmásolhatja a kódot egy IDE-be vagy egy szövegszerkesztőbe, és végrehajthatja azt. Ha problémája van az IDE kiválasztásával a Python számára, olvassa el útmutatónkat a legjobb python IDE összehasonlításáról. Javasoljuk, hogy írja át újra a kódot az IDE-jében, és ha át akarja másolni a kódot, ellenőrizze a szintaxist az itt található kóddal.

# a szükséges modulok importálása importálja az sqlite3 fájlt # kapcsolat létrehozása a conn = sqlite3 adatbázissal.connect ("minta.db ") print (" Sikeresen csatlakozik az adatbázishoz ") # bezárja a csatlakozási kapcsolatot.Bezárás()

A fenti program kapcsolatot hoz létre az SQLite adatbázisfájl „mintájával.db.”A következő kimenetet adja a terminálon.

Lássuk, mi történik a fenti kódban. Az első sorban importáltuk az sqlite3 modult, amely segítségünkre lesz az SQLite adatbázisokkal való munkában a Pythonban.

A második sorban kapcsolatot hozunk létre egy „minta” nevű SQLite adatbázis-fájllal.db ”segítségével connect () funkció. A connect () függvény argumentumként elfogadja az adatbázis fájl elérési útját. Ha a fájl nem létezik az adott elérési útvonalon, akkor maga létrehoz egy új adatbázis fájlt a megadott névvel abban az elérési útban. A connect () függvény visszaad egy adatbázis-objektumot a programunkban; nevű változóba tároljuk a visszaküldött objektumot konn.

Programunk harmadik sora egyszerű nyomtatás utasítás a sikeres kapcsolatról szóló üzenet megjelenítéséhez. A program utolsó sora megszakítja a kapcsolatot az adatbázissal a Bezárás() a kapcsolati objektum funkciója.

Az előző példában létrehoztuk az adatbázist a lemezre, de létrehozhatunk egy adatbázist az elsődleges memória RAM-ba is. Adatbázis létrehozása a RAM-ban az adatbázis futtatását a szokásosnál gyorsabbá teszi. Ennek ellenére az adatbázis ideiglenesen létrejön, és amint a program végrehajtása leáll, törli az adatbázist a memóriából. Létrehozhatunk egy adatbázist a memóriában úgy, hogy megadjuk az adott nevet: memory: argumentumként a connect () funkció. Lásd illusztrációként az alábbi programot.

import sqlite3 conn = sqlite3.connect (": memory:") print ("\ n [+] Az adatbázis sikeresen létrehozva a memóriában") conn.Bezárás()

A fenti program létrehoz egy adatbázist a RAM-ban, és felhasználhatjuk szinte minden feladat elvégzésére, amelyet a lemezen létrehozott adatbázisokkal végezhetünk. Ez a módszer valamilyen okból hasznos ideiglenes virtuális adatbázis létrehozása közben.

SQLite3 kurzor

Akurzor Az objektum az interfészünk az adatbázishoz, amely lehetővé teszi bármelyik futtatásátSQL lekérdezés az adatbázisban. Bármely SQL parancsfájl végrehajtásához az sqlite3 használatával létre kell hoznunk egy kurzorobjektumot. Kurzorobjektum létrehozásához a kurzor() módszere kapcsolat tárgy. Hozhatunk létre kurzorobjektumot adatbázisunkból a következő kód felhasználásával.

# a szükséges modulok importálása importálja az sqlite3 fájlt # kapcsolat létrehozása az adatbázissal conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] Kurzor beállítása sikeresen") cur.bezár () # bezárja a csatlakozási kapcsolatot.Bezárás()

A program végrehajtása után a kimenet az alábbi képen látható módon jelenik meg.

Lássuk, hogyan működik a fenti kód. A fenti kódban az első, a második, a harmadik kapcsolatot létesít az adatbázissal, amint azt korábban bemutattuk. A negyedik sorban a kurzor() a kapcsolati objektum metódusa kurzorobjektum létrehozására és a visszaküldött kurzorobjektum tárolására egy „cur” nevű változóban. Az ötödik sor egy általános nyomtatás() nyilatkozat. A hatodik sorban megsemmisítettük a kurzorobjektumot a memóriából a Bezárás() a kurzorobjektum metódusa.

SQLite adattípusok

Mielőtt tovább folytatnánk, először ismerjük meg az SQLite adattípusokat. Az SQLite adatbázis-motornak számos tárolási osztálya van sokféle adat tárolására, beleértve a szöveget, a bináris adatokat, az Egész számot stb. Minden érték a következő adattípusok egyikével rendelkezik.

SQLite DataTypes:

SQLite és Python adattípusok összehasonlítása

Sokszor előfordul, hogy python adattípusokat kell használnunk bizonyos SQL-adatok tárolására és bizonyos tevékenységek végrehajtására. Ehhez tudnunk kell, hogy mely SQL adattípusok mely python adattípusokhoz kapcsolódnak.

A következő Python típusok némileg hasonlóak az SQLite adattípusokhoz:

Python típus SQLite típus
Egyik sem NULLA
int EGÉSZ SZÁM
úszó IGAZI
str SZÖVEG
bájtokat FOLT

Tábla létrehozása SQLite használatával

Táblázat létrehozásához az SQLite használatával a TÁBLÁZAT LÉTREHOZÁSA utasítás az SQL az végrehajtani () a kurzorobjektum metódusa. Az alábbiakban bemutatjuk a CREATE TABLE utasítás alapszintaktikáját az SQL-ben:

CREATE TABLE tábla_neve (oszlopnév Adattípus-kényszer,… oszlop_név Adattípus-kényszer);

A fenti SQLite utasítás Pythonban történő használatához futtatnunk kell az alábbi példa programot. Létrehoz egy táblázatot, amelynek neve alkalmazott.

import sqlite3 conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] A kurzor beállítása sikeresen megtörtént") tábla = cur.végrehajtás ("" "CREATE TABLE alkalmazó (id INT PRIMARY KEY, név CHAR (25), fizetés CHAR (25), joining_date DATE);" "") print ("\ n [+] A tábla sikeresen elkészült") korcs.bezár () konn.Bezárás()

A fenti programban létrehoztunk egy munkavállaló táblázat az attribútumokkal id, név, fizetés, és csatlakozási dátum. Ez a táblázat most felhasználható adatok tárolására vagy adatok lekérdezésére a követelményeknek megfelelően. A következő kimenetet fogja látni a terminálon.

A fenti kódban a végrehajtani () a kurzorobjektum metódusa az SQL parancs futtatásához egy táblázat létrehozásához a megadott oszlopokkal.

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

Létrehoztunk egy táblázatot az SQLite adatbázisunkban. Most tegyünk bele néhány adatot az SQL segítségével. Az SQL INSERT utasításának alapvető szintaxisa a következő:

INSERT INTO tábla_neve (oszlopnév_1, oszlopnév_2,…) ÉRTÉKEK (oszlop_adatok_1, oszlopok_adatok_1,…)

A fenti szintaxisban a tábla_neve annak a táblának a neve, amelybe be akarjuk illeszteni az adatainkat. A oszlop_név_1, oszlop_név_2, a táblázatban található oszlopok neve. A oszlop_adatok_1, oszlop_adatok_2,… azok az adatok, amelyeket be akarunk illeszteni az adott oszlopokba.

Nézzünk meg egy praktikus bemutatót az adatok táblázatba történő beszúrásához. Hozzáadunk néhány adatot a megnevezett táblázatunkhoz munkavállaló SQLite és Python használatával. Futtassa az alábbi kódot, hogy beszúrjon néhány adatot a táblázatba.

import sqlite3 conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] Kurzor beállítása sikeresen") cur.végrehajtás ("INSERT INTO alkalmazott (azonosító, név, fizetés, csatlakozási_dátum) VALUES (1001, 'David', 50000, '1-08-2019')" cur.végrehajtani ("INSERT INTO alkalmazó (azonosító, név, fizetés, csatlakozási_dátum) VALUES (1002, 'Sam', 80000, '3-09-2020')" cur.végrehajtás ("INSERT INTO alkalmazó (azonosító, név, fizetés, csatlakozási_dátum) VALUES (1003, 'Roshan', 90000, '8-08-2020')" cur.végrehajtás ("INSERT INTO alkalmazó (azonosító, név, fizetés, csatlakozási_dátum) VALUES (1004, 'Kishan', 100000, '9-09-2020')" cur.végrehajtás ("INSERT INTO alkalmazó (azonosító, név, fizetés, csatlakozási_dátum) VALUES (1005, 'Ankit', 111000, '10 -05-2019 ')") nyomtatás ("\ n [+] Az adatok sikeresen beillesztve" ) cur.bezár () konn.bekötni () beköt.Bezárás()

A fenti kód néhány adatot beilleszt a munkavállaló táblázat, amelyet korábban készítettünk. Lássuk, mi történik a kódban. Az első öt sort arra használják, hogy kapcsolatot teremtsenek az adatbázissal és beállítsák a kurzort. A hattól tízig terjedő sorokban az SQL INSERT parancsát kell felhasználnunk az adatok beszúrására az alkalmazottak táblájába. Az első zárójelben a munkavállalói táblázat oszlopnevét, a második zárójelben pedig az oszlopok adatait kell használnunk. Csak használnunk kell a elkövetni() A kapcsolatobjektum metódusa, mielőtt leválasztaná az adatbázissal, ellenkező esetben az elvégzett változtatásokat nem menti az adatbázis.

Adatok lekérdezése egy táblázatból

Megtanultuk, hogyan kell adatokat beilleszteni egy SQLite adatbázisba, de az adatbázisból is kell lekérdeznünk az adatokat, hogy a programunk vagy a felhasználóink ​​használhassák őket. Adatok lekérdezéséhez használhatjuk az SQL SELECT utasítását az execute () metódus alatt. A SELECT utasítás szintaxisa az alábbiakban látható.

SELECT oszlopok_nevek FROM table_name

A oszlopok_nevek a szintaxisban azoknak az oszlopoknak a neve lesz, amelyeket meg kell kérdeznünk. Ezeknek az oszlopoknak jelen kell lenniük abban a táblázatban, amelynek a nevét megadják tábla_neve. Most nézzük meg, hogyan használhatnánk ezt a szintaxist az adatok lekérdezésére az alkalmazottak táblázatából. Csak futtassa a következő kódot az illusztráció megjelenítéséhez.

import sqlite3 conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] Kurzor beállítása sikeresen") cur.végrehajtani ("SELECT id, név FROM alkalmazott") tábla = cur.fetchall () az i-hez a táblázatban: print (i) cur.bezár () konn.bekötni () bekötni.Bezárás()

A fenti program által biztosított kimenet az alábbiakban látható.

A fenti program lekérdezi az oszlopokat a munkavállalói táblából id és név. A visszaküldött adatokat a fetchall () a kurzorobjektum metódusa. A visszaküldött adatok egy python lista, amely tartalmazza az általunk lekérdezett sorokat. Az egyes sorok megjelenítéséhez a Python for ciklust kell használnunk a lista feletti iterációhoz; a Python for loopról itt olvashat bővebben. Most nézzünk meg néhány hasznos dolgot, amelyet a SELECT utasítással végre lehet hajtani.

Töltse le az összes adatot egy táblából

Néha szükség van az összes rekord lekérésére egy adatbázis-tábláról. Ahhoz, hogy az összes rekordot megszerezzük az SQL SELECT utasításával, az alábbi szintaxist kell követnünk:

KIVÁLASZTÁS * FROM table_name

A * szimbólum az összes oszlop jelölésére szolgál, és ennek használatával lekérdezhetjük az SQLite tábla összes oszlopát. Az összes rekord lekéréséhez a korábban létrehozott tábla alkalmazottjától a következő kódot kell futtatnunk.

import sqlite3 conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] Kurzor beállítása sikeresen") cur.végrehajtani ("SELECT * FROM alkalmazott") sorok = cur.fetchall () print ("\ n [+] Adatok lekérdezése \ n") i-re sorokban: print (i) cur.bezár () konn.bekötni () bekötni.Bezárás()

A fenti kód az összes alkalmazott rekordot megjeleníti, amelyet korábban létrehoztunk a munkavállalói táblázatban. A program kimenete valami ilyesmi lesz:

Lekérdezési adatok meghatározott sorrendben

Néha olyan táblázatokból kell adatokat lekérdeznünk, amelyek meghatározott sorrendben vannak, például növekvő vagy csökkenő. Használhatjuk a SELECT utasítást a ORDER BY kulcsszóval az adatok sorrendben történő megjelenítéséhez. A SELECT utasítás ORDER BY kulcsszavának alapvető szintaxisa:

SELECT oszlopok_neve FROM tábla_neve ORDER BY oszlopok_neve

Nézzük meg, hogyan használhatjuk az ORDER BY kulcsszót az alkalmazottak táblázatos sorrendjének adatainak név szerinti megjelenítésére.

import sqlite3 conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] Kurzor beállítása sikeresen") cur.végrehajtani ("KIVÁLASZTÁS * FROM alkalmazói RENDELÉS Név alapján") tábla = cur.fetchall () az i-hez a táblázatban: print (i) cur.bezár () konn.bekötni () beköt.Bezárás()

Láthatja a fenti kód kimenetét, az alábbiak szerint.

A kimenetben észreveheti, hogy az adatok az oszlop növekvő sorrendjében jelennek meg név.

Rekordok frissítése egy táblázatban

Sok helyzet van, amikor frissíteni akarjuk az adatbázisunk tábláját. Például, ha iskolai alkalmazáshoz használjuk az adatbázist, akkor frissítenünk kell az adatokat, ha egy diák új városba költözött. Gyorsan frissíthetjük adatbázisunk bármely táblázatának egy sorát a FRISSÍTÉS SQL utasítás az execute () metódusban. A munkavállaló kiválasztásához feltételként kell használnunk az SQL WHERE záradékát. A. Szintaxisa FRISSÍTÉS nyilatkozat látható alább.

UPDATE table_name SET frissítés_szükséges WHERE Some_condition

Lásd az alábbi példát az UPDATE utasítás illusztrációjaként.

import sqlite3 conn = sqlite3.connect ("minta.db ") print (" \ n [+] Sikeresen kapcsolódott az adatbázishoz ") cur = conn.kurzor () print ("\ n [+] A kurzor sikeresen beállítva") print ("\ n [+] Adatok frissítés előtt \ n") cur.végrehajtani ("SELECT * FROM alkalmazott") előtt = cur.fetchall () for i in before: print (i) cur.végrehajtani ("UPDATE alkalmazói SET név = 'Aditya' ahol név = 'Sam'") print ("\ n [+] adatok frissítés után \ n") cur.végrehajtani ("SELECT * FROM alkalmazott") után = cur.fetchall () for i in after: print (i) cur.bezár () konn.bekötni () bekötni.Bezárás()

A fenti program frissíti a tábla alkalmazottját. A név helyébe lép Sam a névvel Aditya bárhol is jelenik meg a táblázatban. A program kimenetét lásd az alábbi képen.

Következtetés

Ez átfogó útmutatónk az alapvető SQLite adatbázis-alapú feladatok Python használatával történő elvégzéséhez. A következő oktatóanyagban néhány fejlettebb felhasználást fogunk látni, amelyeknek segítségével a következő szintre juthatunk az SQLite adatbázis Python használatához. Maradjon velünk a FOSSLinuxon.

Az OSD-fedvény megjelenítése teljes képernyős Linux-alkalmazásokban és játékokban
Teljes képernyős játékok lejátszása vagy alkalmazások figyelemelterelés nélküli, teljes képernyős módban történő használata elvághatja a panelen vagy ...
Az 5 legjobb játékrögzítő kártya
Mindannyian láttuk és szerettük a YouTube-on a streaming játékokat. A PewDiePie, a Jakesepticye és a Markiplier csak néhány a legnépszerűbb játékosok ...
Hogyan lehet játékot fejleszteni Linuxon
Egy évtizeddel ezelőtt nem sok Linux-felhasználó jósolta, hogy kedvenc operációs rendszerük egy napon a videojátékok népszerű játékplatformja lesz. El...