Welcome to Our Website

Python sqlite3 tutorial (adatbázis programozás)

ebben a bemutatóban az sqlite3 adatbázissal programozottan dolgozunk a Python használatával.

az SQLite általában egy szerver nélküli adatbázis, amelyet szinte minden programozási nyelven használhat, beleértve a Python-t is. Szerver nélküli azt jelenti, hogy nincs szükség külön szerver telepítésére az SQLite használatához, így közvetlenül csatlakozhat az adatbázishoz.

az SQLite egy könnyű adatbázis, amely nulla konfigurációjú relációs adatbázis-kezelő rendszert biztosít, mivel nincs szükség konfigurálásra vagy beállításra annak használatához.,

az SQLite 3-as vagy SQLite3-as verzióját fogjuk használni, Tehát kezdjük el.

Tartalomjegyzék

a Kapcsolat Létrehozása

használni SQLite3 Python, először meg kell importálni az sqlite3 modul, majd hozzon létre egy kapcsolat objektum, amely összeköt minket, hogy az adatbázisba kerül, hadd hajtsa végre az SQL-utasítások.

a connect() függvény segítségével kapcsolódási objektumot hozhat létre:

import sqlite3con = sqlite3.connect('mydatabase.db')

, amely új fájlt hoz létre a “mydatabase” névvel.db”.,

SQLite3 kurzor

az SQLite kijelentések Python-ban történő végrehajtásához kurzor objektumra van szüksége. A kurzor() módszerrel hozhatja létre.

az SQLite3 kurzor a csatlakozási objektum módszere. Az SQLite3 utasítások végrehajtásához először létre kell hoznia egy kapcsolatot, majd létre kell hoznia a kurzor objektumát a connection object segítségével az alábbiak szerint:

con = sqlite3.connect('mydatabase.db')cursorObj = con.cursor()

most a kurzorobjektum segítségével hívhatjuk az execute() módszert az SQL lekérdezések végrehajtására.,

adatbázis létrehozása

az SQLite-tal való kapcsolat létrehozásakor automatikusan létrehoz egy adatbázisfájlt, ha még nem létezik. Ez az adatbázisfájl a lemezen jön létre; adatbázist is létrehozhatunk a RAM-ban: memória: a connect funkcióval. Ezt az adatbázist in-memory adatbázisnak hívják.

fontolja meg az alábbi kódot, amelyben próbával létrehoztunk egy adatbázist, kivéve végül blokkolja a kivételek kezelését:

először importáljuk az sqlite3 modult, majd meghatározunk egy függvényt sql_connection., Ezen a funkción belül van egy próbablokk, ahol a connect () funkció visszatér egy csatlakozási objektumhoz a kapcsolat létrehozása után.

akkor van, kivéve blokk, amely kivétel esetén kiírja a hibaüzenetet. Ha nincsenek hibák, akkor a kapcsolat létrejön, és a következő üzenetet jeleníti meg.

ezután lezártuk a kapcsolatot a végül blokkban. A kapcsolat bezárása opcionális, de ez egy jó programozási gyakorlat, így felszabadítja a memóriát a fel nem használt erőforrásoktól.,

Táblázat létrehozása

táblázat létrehozásához az sqlite3-ban használhatja a Táblázat létrehozása lekérdezést az execute() metódusban. Vegye figyelembe a következő lépéseket:

  1. hozzon létre egy kapcsolatobjektumot.
  2. a kapcsolatobjektumból hozzon létre egy kurzorobjektumot.
  3. a kurzorobjektum használatával hívja meg az execute metódust táblázat lekérdezés létrehozása paraméterként.,

hozzunk létre alkalmazottakat a következő attribútumokkal:

employees (id, name, salary, department, position, hireDate)

a kód így lesz:

a fenti kódban két módszert definiáltunk, az első kapcsolatot hoz létre, a második módszer pedig kurzorobjektumot hoz létre a Táblázat létrehozása utasítás végrehajtásához.

a commit () módszer elmenti az összes módosítást. Végül mindkét módszert hívják.

annak ellenőrzésére, hogy a táblázat jön létre, akkor a DB böngésző SQLite megtekintéséhez a táblázatban. Nyissa ki a mydatabase-t.,db fájl a program, és meg kell látni a táblázatot:

helyezze be a táblázat

adatok beszúrása a táblázatban, használjuk a betétet a nyilatkozatot. Vegyük a következő sort a kódot:

cursorObj.execute("INSERT INTO employees VALUES(1, 'John', 700, 'HR', 'Manager', '2017-01-04')")con.commit()

, Hogy ellenőrizze, ha az adatok egészül ki, kattintson a Tallózás Adatok a DB Böngésző:

Mi is át értékek/érveket, hogy egy nyilatkozatot, HELYEZZE be az execute() metódus. Használhatja a kérdőjelet (?) minden érték helyőrzőjeként., A szintaxis a BESZÚRÁS lesz, mint a következő:

cursorObj.execute('''INSERT INTO employees(id, name, salary, department, position, hireDate) VALUES(?, ?, ?, ?, ?, ?)''', entities)

Amennyiben szervezetek tartalmazza az értékek a helyőrzők a következőképpen:

entities = (2, 'Andrew', 800, 'IT', 'Tech', '2018-02-06')

A teljes kód a következő:

Frissítés Táblázat

frissíteni az asztalra, egyszerűen hozzon létre egy kapcsolatot, akkor hozzon létre egy kurzor objektum segítségével a kapcsolat végül használja a FRISSÍTÉSI nyilatkozat az execute() metódus.

tegyük fel, hogy frissíteni akarjuk annak a munkavállalónak a nevét,akinek az azonosítója 2., A frissítéshez a frissítési nyilatkozatot fogjuk használni annak a munkavállalónak,akinek az azonosítója 2. A WHERE záradékot fogjuk használni a munkavállaló kiválasztásának feltételeként.

vegye figyelembe a következő kódot:

Ez Andrew nevét Rogersre változtatja az alábbiak szerint:

Select statement

a select utasítás segítségével kiválaszthatja az adatokat egy adott táblázatból. Ha az adatok összes oszlopát egy táblázatból szeretné kiválasztani, használhatja a csillagot (*)., Ennek szintaxisa a következő lesz:

select * from table_name

az SQLite3-ban a SELECT utasítás a kurzor objektum végrehajtási módszerében kerül végrehajtásra., Például válassza ki az alkalmazottak táblázatának összes oszlopát, futtassa a következő kódot:

cursorObj.execute('SELECT * FROM employees ')

ha néhány oszlopot szeretne kiválasztani a táblázatból, akkor adja meg az alábbi oszlopokat:

select column1, column2 from tables_name

például

cursorObj.execute('SELECT id, name FROM employees')

a kijelölési utasítás kiválasztja a szükséges adatokat az adatbázis táblából, és ha a kiválasztott adatokat szeretné letölteni, akkor a kurzor objektum fetchall() metódusát használja. Ezt a következő részben mutatjuk be.,

minden adat lekérése

az adatok adatbázisból történő lekéréséhez végrehajtjuk a SELECT utasítást, majd a kurzor objektum fetchall() metódusát használjuk az értékek változóba történő tárolására. Ezt követően a változón keresztül körbejárjuk az összes értéket.

a kód így lesz:

a fenti kód az adatbázisunkban szereplő rekordokat a következőképpen nyomtatja ki:

a fetchall() egy sorban is használható az alábbiak szerint:


ha konkrét adatokat szeretne letölteni az adatbázisból az adatbázis, akkor a Hol záradék., Szeretnénk például azoknak a munkavállalóknak az igazolványát és nevét, akiknek a fizetése meghaladja a 800-at. Ehhez töltsük fel táblázatunkat több sorral, majd hajtsuk végre a lekérdezést.

használhatja a Beszúrás nyilatkozatot az adatok feltöltéséhez, vagy manuálisan beírhatja azokat a DB böngésző programba.

most a 800-nál nagyobb fizetéssel rendelkezők azonosítójának és nevének letöltéséhez:

a fenti SELECT nyilatkozatban a csillag ( * ) használata helyett megadtuk az azonosító és név attribútumokat., Az eredmény a következő lesz:

SQLite3 rowcount

az SQLite3 rowcount a legutóbb végrehajtott SQL lekérdezés által érintett vagy kiválasztott sorok számának visszaadására szolgál.

amikor a ROWCOUNT-ot használjuk a SELECT utasításnál, -1 vissza fog térni, mivel hány sor van kiválasztva, amíg az összes le nem kerül., Tekintsük az alábbi példát:

print(cursorObj.execute('SELECT * FROM employees').rowcount)

Ezért, hogy a sor szám, meg kell, hogy hozzon az adatokat, majd a hossza az eredmény:

rows = cursorObj.fetchall()print len (rows)

Ha használja a DELETE kifejezés minden feltétel nélkül (egy, hol záradék), hogy törli a sort a táblázatban, majd vissza a száma törölt sorok rowcount.

print(cursorObj.execute('DELETE FROM employees').rowcount)

ha egyetlen sort sem törölnek, akkor nulla lesz.,

listatáblák

az sqlite3 adatbázis összes táblájának felsorolásához lekérdeznie kell az sqlite_master táblát, majd a FETCHALL() segítségével kell letöltenie az eredményeket a SELECT utasításból.

az sqlite_master az sqlite3 mesterasztala, amely az összes táblát tárolja.

Ez az összes táblázatot az alábbiak szerint sorolja fel:

ellenőrizze, hogy létezik-e tábla vagy sem

táblázat létrehozásakor meg kell győződnünk arról, hogy a táblázat még nem létezik. Hasonlóképpen, a táblázat eltávolításakor / törlésekor a táblázatnak léteznie kell.,s” a DROP TABLE utasítás a következőképpen:

drop table if exists table_name

például,

cursorObj.execute('drop table if exists projects')

Mi is ellenőrizheti, ha az asztalra szeretnénk hozzáférni létezik, vagy nem, a végrehajtó a következő lekérdezést:

cursorObj.execute('SELECT name from sqlite_master WHERE type = "table" AND name = "employees"')print(cursorObj.fetchall())

Ha a munkavállalók táblázat létezik, vissza fog térni a nevét a következőképpen:

Ha a táblázat név meghatározott nem létezik, egy üres tömb lesz tért vissza:

Drop table

csepp/töröl egy táblázat segítségével a CSEPP nyilatkozatot., A Drop utasítás szintaxisa a következő:

egy táblázat leejtéséhez a táblázatnak léteznie kell az adatbázisban. Ezért ajánlott a “ha létezik” kifejezést a következő cseppnyilatkozattal használni:

drop table if exists table_name

például

sqlite3 kivételek

kivételek a futási idő hibái. A Python programozásban minden kivétel a BaseException-ből származó osztály példányai.,

az SQLite3-ban a következő fő Python kivételek vannak:

DatabaseError

az adatbázishoz kapcsolódó bármely hiba felveti az Adatbázisterror.

IntegrityError

IntegrityError egy alosztálya DatabaseError és felmerül, ha van egy adatintegritás kérdés. Például a külföldi adatok nem frissülnek az összes táblában, ami az adatok következetlenségét eredményezi.

ProgrammingError

a kivétel ProgrammingError felveti, ha vannak szintaktikai hibák vagy táblázat nem található, vagy függvényt hívják a rossz számú paraméterek / érvek.,

OperationalError

Ez a kivétel akkor merül fel, ha az adatbázisműveletek nem működnek, például szokatlan leválasztás. Ez nem a programozók hibája.

NotSupportedError

ha olyan módszereket használ, amelyeket az adatbázis nem határoz meg vagy nem támogat, ez növeli a NotSupportedError kivételt.

SQLite3 Executemany (Bulk insert)

a executemany utasítás segítségével egyszerre több sort is beilleszthet.

vegye figyelembe a következő kódot:

itt létrehoztunk egy táblázatot két oszloppal, az “adat” pedig négy értéket tartalmaz minden oszlophoz., A változót a végrehajtóhoz továbbítjuksok () módszer a lekérdezéssel együtt.

vegye figyelembe, hogy a helyőrzőt az értékek átadására használtuk.

a fenti kód a következő eredményt hozza létre:

szoros kapcsolat

miután elvégezte az adatbázisát, jó gyakorlat a kapcsolat bezárása. A kapcsolatot a Bezárás() módszerrel zárhatja le.,

a kapcsolat bezárásához használja a kapcsolat objektumot, majd hívja a Bezárás() módszert az alábbiak szerint:

con = sqlite3.connect('mydatabase.db')#program statementscon.close()

SQLite3 datetime

a Python SQLite3 adatbázisban könnyen tárolhatjuk a dátumot vagy az időt a datatime modul importálásával. A következő formátumokat a leggyakoribb formátumok segítségével datetime:

YYYY-MM-DDYYYY-MM-DD HH:MMYYYY-MM-DD HH:MM:SSYYYY-MM-DD HH:MM:SS.SSSHH:MMHH:MM:SSHH:MM:SS.SSSnow

Fontolja meg a következő kódot:

ebben A kód, akkor az importált a datetime modul első, majd létrehoztunk egy táblázatban megnevezett feladatokat a három oszlop.

a harmadik oszlop adattípusa dátum., A dátum oszlopba történő beillesztéséhez a datetime-t használtuk.randi. Hasonlóképpen, tudjuk használni datetime.ideje kezelni az időt.

a fenti kód a következő kimenetet generálja:

az sqlite3 adatbázis nagy rugalmassága és mobilitása lehetővé teszi, hogy bármely fejlesztő használja és szállítsa bármilyen termékkel, amellyel dolgozik.

használhatja SQLite3 adatbázisok Windows, Linux, Mac OS, Android, iOS projektek miatt félelmetes hordozhatóság. Szóval egy fájlt küldesz a projekteddel, és ennyi.

remélem, hasznosnak találja a bemutatót., Gyere vissza.

köszönöm.

Ayesha Tariq egy teljes stack szoftverfejlesztő, webfejlesztő és blockchain Fejlesztő rajongó. Széles körű ismeretekkel rendelkezik a C/C++, Java, Kotlin, Python, és különböző mások.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük