ennek a Python SQLite bemutatónak az a célja, hogy bemutassa, hogyan lehet Python adatbázis alkalmazásokat fejleszteni az SQLite adatbázissal. Meg fogja tanulni, hogyan kell végrehajtani SQLite adatbázis műveleteket Python.
mint mindannyian tudjuk, SQLite egy C-nyelvű könyvtár, amely megvalósítja egy SQL adatbázis motor, amely viszonylag gyors, szerver nélküli, önálló, nagy megbízhatóságú. Az SQLite a leggyakrabban használt adatbázis-motor a tesztkörnyezetben (Lásd az SQLite kezdőlapot)., SQLite jön beépített a legtöbb számítógép, mobil eszközök, böngészők. A Python hivatalos sqlite3 modulja segít együttműködni az SQLite adatbázissal.
Python sqlite3 modul tapad Python adatbázis API specifikáció v2.0 (PEP 249). A PEP 249 egy SQL interfészt biztosít, amely az adatbázisok eléréséhez használt Python modulok közötti hasonlóság ösztönzésére és fenntartására szolgál.,
Ez a bemutató során elsősorban: –
- Csatlakozás az SQLite adatbázis a Python Létre egy SQLite adatbázis-táblázatok
- a Következő fogjuk fedezni SQLite Datatypes, valamint a megfelelő Python típusú
- a Következő megtanuljuk, hogyan kell elvégezni SQLite KABÓCA művelet, azaz,hiszik el, hogy a digitális adatokat SQLite segítségével a Python
- a Következő kiterjed SQLite ügylet Kezelése, létrehozása, majd a hívás SQLite funkciók, – hiba-kezelési technikák, hogy dolgozzon ki átfogó python programok SQLite adatbázis
- Azt is tudja, hogyan kell létrehozni kezelni egy in-memory adatbázis konvertálása SQLite értékek egyéni Python típusú
- egy biztonsági másolatot SQLite adatbázis belül Python
Hadd látom, minden egyes rész most.,
Python SQLite Connection
Ez a szakasz lehetővé teszi, hogy tudja, hogyan kell létrehozni egy SQLite adatbázist, majd csatlakozni a python segítségével sqlite3 modul.
az SQLite-hoz való kapcsolat létrehozásához meg kell adnia a csatlakoztatni kívánt adatbázis nevét. Ha megadja a lemezen már bemutatott adatbázisfájl nevét, akkor csatlakozik hozzá. De ha a megadott SQLite adatbázis fájl nem létezik, SQLite létrehoz egy új adatbázist az Ön számára.,
a következő lépéseket kell követnie az SQLite
-
connect()
sqlite3 modul módszeréhez való csatlakozáshoz, és argumentumként adja át az adatbázis nevét. - hozzon létre egy kurzorobjektumot a connect módszerrel visszaküldött csatlakozási objektum segítségével az SQLite lekérdezések futtatásához a Python-ból.
- munka közben zárja be a Kurzorobjektumot és az SQLite adatbázis-csatlakozási objektumot.
- Catch adatbázis kivétel, ha bármilyen, hogy előfordulhat során ez a kapcsolat folyamat.
a következő Python program létrehoz egy új adatbázis fájlt ” SQLite_Python.,db ” és kiírja az SQLite verzió részleteit.
a következő kimenetet kell kapnia, miután csatlakozott az SQLite-hoz a Python-ból.
Database created and Successfully Connected to SQLiteSQLite Database Version is: The SQLite connection is closed
Értem az SQLite kapcsolat Kód részletesen
import sqlite3
- Ez a vonal a behozatal az sqlite3 modul a program. Az sqlite3 modulban definiált osztályok, módszerek segítségével kommunikálhatunk az SQLite adatbázissal.
sqlite3.,csatlakozás ()
- a
connect()
módszerrel kapcsolatot hozhatunk létre az SQLite adatbázissal. Ez a módszer visszaadja az SQLite Connection objektumot. - a kapcsolat objektum nem menetbiztos. az sqlite3 modul nem teszi lehetővé a szálak közötti kapcsolatok megosztását. Ha még mindig megpróbálja megtenni, kivételt kap a futási időben.
- a
connect()
metódus különböző érveket fogad el. Példánkban átadtuk az adatbázisnév argumentumot a csatlakozáshoz.
cursor = sqliteConnection.,kurzor ()
- kapcsolati objektum segítségével létrehozhatunk egy kurzorobjektumot, amely lehetővé teszi az SQLite parancs/lekérdezések végrehajtását Python segítségével.
- annyi kurzort hozhatunk létre, amennyit csak akarunk egyetlen kapcsolatobjektumból. A connection objecthez hasonlóan ez a kurzorobjektum sem szálmentes. az sqlite3 modul nem teszi lehetővé a kurzorok megosztását a szálak között. Ha még mindig megpróbálja megtenni, kivételt kap a futási időben.
ezt követően létrehoztunk egy SQLite lekérdezést az adatbázis verziójának megszerzéséhez.
kurzor.,execute ()
- a kurzor execute módszer tudjuk végrehajtani egy adatbázis művelet vagy lekérdezés Python. A
cursor.execute()
metódus paraméterként SQLite lekérdezést vesz fel, és a resultSet-et adja vissza, azaz csak adatbázis sorokat. - a resultSet lekérdezési eredményét kurzor módszerekkel, például
- példánkban a
SELECT version();
lekérdezést hajtjuk végre az SQLite verzió letöltéséhez.,
próbáld meg-csak-végre blokk: Mi kerül a kódot a try-kivéve blokk elkapni az SQLite adatbázis kivételek, de hibák előfordulhatnak során ez a folyamat.
- a
sqlite3.Error
osztály sqlite3 modul, tudjuk kezelni bármilyen adatbázis hiba, kivétel, hogy előfordulhat, miközben dolgozik SQLite Python. - ezzel a megközelítéssel tudjuk, hogy az alkalmazás robusztus. A
sqlite3.Error
osztály segít megérteni a hibát részletesen. Hibaüzenetet és hibakódot ad vissza.
kurzor.Bezárás () és kapcsolat.,Bezárás ()
- mindig jó gyakorlat a kurzor és a kapcsolat objektum bezárása, miután a munka befejeződött az adatbázis-problémák elkerülése érdekében.
hozzon létre SQLite táblát a Python
– ből ebben a szakaszban megtanuljuk, hogyan hozzunk létre egy táblázatot az SQLite adatbázisban a Python-ból az sqlite3 modul segítségével. Hozzon létre egy táblázatot nyilatkozat egy DDL lekérdezés lássuk, hogyan kell végrehajtani azt Python.
ebben a példában létrehozunk egy” SqliteDb_developers ” táblát az “SQLite_Python” – on belül.db ” adatbázis.,
táblázat létrehozásának lépései SQLite –ban a Python-ból: –
- csatlakozzon az SQLite-hez a
sqlite3.connect()
használatával. A cikk elején elmagyaráztam az SQLite csatlakozási kódot. - készítsen egy táblázat létrehozása lekérdezést.
- hajtsa végre a lekérdezést egy
cursor.execute(query)
- végül zárja be az SQLite adatbázis-kapcsolatot és a kurzor objektumot.,
Teljesítmény:
Successfully Connected to SQLiteSQLite table created:the sqlite connection is closed
SQLite Datatypes, valamint a megfelelő Python típusú
Mielőtt folytatná a végrehajtó SQLite CRUD műveletek a Python első értem, SQLite adatok típusát, majd a megfelelő Python típusú, amely segít bennünket, hogy boltba olvassa el az adatokat az SQLite táblázat.
SQLite adatbázis motor több tárolási osztályok értékek tárolására. Minden SQLite adatbázisban tárolt érték a következő tárolóosztályok vagy adattípusok egyikével rendelkezik.,
SQLite adattípusok:
- NULL: – az érték NULL érték.
- INTEGER: – a numerikus érték tárolásához. A tárolt egész szám 1, 2, 3, 4, 6, vagy 8 bájt a szám nagyságától függően.
- REAL: – az érték egy lebegőpontos érték, például a pi
- szöveg 3.14 értéke: – az érték egy szöveges karakterlánc, az UTF-8, UTF-16be vagy UTF-16LE kódolással tárolt SZÖVEGÉRTÉK.
- BLOB – – az érték egy adatblob, azaz bináris adat. Arra használják, hogy tárolja a képeket, fájlokat.
a következő Python típusok SQLite-ra konvertálva, minden probléma nélkül., Tehát, ha módosítja vagy olvas az SQLite táblázatból a CRUD műveletek végrehajtásával, ne feledje ezt a táblázatot.,
Python type | SQLite type |
None | NULL |
int | INTEGER |
float | REAL |
str | TEXT |
bytes | BLOB |
Perform SQLite CRUD Operations from Python
Most of the time, we need to manipulate the SQLite table’s data from Python. To perform these data manipulations, we can execute DML queries i.e.,, SQLite Insert, Update, Delete műveletek Python.
most már ismerjük a táblázatot, és az oszlop részletei, tehát lépjünk át a crud műveletekre. Minden művelethez külön bemutatót készítettem, hogy részletesen lefedjem. Most nézzük meg az egyes szakaszokat.
- adatok beszúrása az SQLite táblába a Python-ból – ebben a szakaszban megtanuljuk, hogyan kell végrehajtani a Beszúrás parancsot a python-ból, hogy rekordokat helyezzen be az SQLite táblába.
- olvassa el az SQLite tábla adatait a Python-ból – ebben a cikkben megtanuljuk, hogyan kell végrehajtani az SQLite SELECT lekérdezést egy Python alkalmazásból a táblázat sorainak letöltéséhez., Továbbá, azt is, hogy tudd, hogyan kell használni
fetchall()
,fetchmany()
, ésfetchone()
módszerek a kurzor osztály letölteni korlátozott sorok a táblázatban, hogy fokozza a teljesítményt. - SQLite táblázat adatainak frissítése a Python-ból – ebben a szakaszban megtanuljuk, hogyan kell végrehajtani a frissítési lekérdezést a python-tól az SQLite táblázat rekordjainak módosításához.
- adatok törlése az SQLite táblázatból a Python-ból – ebben a szakaszban megtanuljuk, hogyan kell végrehajtani a törlési lekérdezést a python-ból, hogy eltávolítsuk a rekordokat az SQLite táblából.,
SQL fájl (szkriptek) végrehajtása a kurzor executescript funkciójával
SQLite szkriptek hasznosak a napi munka nagy részében. SQLite script egy sor SQL parancsok mentett fájlként (- ban .sql formátum).
az SQLite parancsfájl egy vagy több SQL műveletet tartalmaz, amelyeket szükség esetén végrehajthat a parancssori parancssorból.
Az alábbiakban felsoroljuk azokat a néhány gyakori forgatókönyvet, ahol SQLite szkripteket használhatunk
- több adatbázis biztonsági mentése egyszerre.
- hasonlítsa össze a sorszámokat táblázatokban két különböző adatbázisból ugyanazzal a sémával.,
- tartsa az összes CREATE TABLE SQL parancsot egy adatbázis szkriptben. Így létrehozhat adatbázis sémát bármely kiszolgálón.
a szkriptet az SQLite parancssorból a .olvassa parancs, mint ez:
sqlite> .read mySQLiteScript.sql
ehhez a példához létrehoztam egy minta SQLite szkriptet, amely két táblát hoz létre. Ez az a forgatókönyv, amelyet létrehoztam.
CREATE TABLE hardware ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, price REAL NOT NULL);CREATE TABLE software ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, price REAL NOT NULL);
most nézzük meg, hogyan kell végrehajtani egy SQLite szkriptet a Python-ból.
kimenet: SQLite táblák, amelyeket egy SQL szkript Python-ból történő végrehajtásával hoztak létre.,
Successfully Connected to SQLiteSQLite script executed successfullysqlite connection is closed
Megjegyzés: miután csatlakoztunk az SQLite-hoz, elolvastuk a lemezen tárolt SQLite szkriptfájl összes tartalmát, és egy python string változóba másoltuk. Ezután a cursor.executscript(script)
módszert hívtuk az összes SQL utasítás egy hívásban történő végrehajtására.
digitális adatok beszúrása/lekérése SQLite-ban Python segítségével
- ebben a szakaszban tudatom Önnel, hogyan lehet bármilyen digitális információt, például fájlt, képet, videót vagy dalt beilleszteni az SQLite táblába a python-ból.,
- is, megtanulják, hogyan lehet olvasni egy fájlt, képet, videót, dalt, vagy bármilyen digitális tárolt adatok SQLite segítségével Python.
olvassa el a teljes útmutató Python SQLite BLOB beszúrni és letölteni a fájlt és képeket.
létrehozása vagy újradefiniálása SQLite funkciók segítségével Python
Python sqlite3 modul lehetővé teszi számunkra, hogy hozzon létre, majd újra definiálni SQL funkciók belül Python. Létrehoztam egy külön bemutatót, hogy részletesen lefedjem. Kérjük, olvassa el, hogyan lehet létrehozni és újradefiniálni az SQL funkciókat a Python-on belül.,
olvassa el a teljes útmutató létrehozása vagy újradefiniálása SQLite funkciók belül Python.
Dolgozik, SQLite dátum, timestamp típusú Piton pedig fordítva
Néha kell beszúrni, vagy olvassa el a dátum-vagy DateTime érték egy SQLite táblázat. Tehát, ha dátummal vagy időbélyeg-értékekkel dolgozik, akkor kérjük, olvassa el az SQLite DateTime értékekkel való együttműködésről szóló külön bemutatónkat Python-ban.
SQLite adatbázis kivételek
kivétel sqlite3.Figyelmeztetés
- a kivétel alosztálya. És figyelmen kívül hagyhatod, ha akarod, ez nem állítja meg a kivégzést.,
kivétel sqlite3.Hiba
- az sqlite3 modul többi kivételének alaposztálya. Ez a kivétel alosztálya.
kivétel sqlite3.DatabaseError
- kivétel az adatbázishoz kapcsolódó hibák miatt.
példák: ha megpróbál megnyitni egy fájlt, mint egy sqlite3 adatbázis, amely nem egy adatbázis fájlt, akkor kap sqlite3.DatabaseError: fájl titkosított vagy nem egy adatbázis
kivétel sqlite3.IntegrityError
- alosztálya egy DatabaseError., Ezt a kivételt akkor kapja meg, ha az adatbázis relációs integritását érinti, például egy idegen kulcs ellenőrzése sikertelen.
kivétel sqlite3.ProgrammingError
- ez is egy alosztálya DatabaseError. Ez a kivétel a programozási hibák miatt merült fel, például egy olyan tábla létrehozása, amely már létezik, szintaktikai hiba az SQL lekérdezésekben.
kivétel sqlite3.OperationalError
- ez is egy alosztálya DatabaseError. Ez a hiba nem a mi irányításunk. Ez a kivétel felvetett hibák, amelyek kapcsolódnak az adatbázis működését.,
- példák: véletlen leválasztás, szerver le, időtúllépés történik,az adatforrás problémák. szerver le
kivétel sqlite3.NotSupportedError
- kivételt kap, ha az adatbázis API-t használta, amelyet az adatbázis nem támogat.
- példa: a rollback() módszer hívása olyan kapcsolaton, amely nem támogatja a tranzakciót. Hívás elkövetni létrehozása után tábla parancsot.,
tehát mindig tanácsos az összes adatbázis-kezelési kódot a try blokkban írni, így kivételeket foghat meg, kivéve a blokkot, ha van ilyen, és elvégezheti a korrekciós intézkedéseket ellene.
például próbáljunk meg adatokat beszúrni egy olyan táblába, amely nem létezik az SQLite adatbázisban, majd nyomtassuk ki a teljes kivételköteget.,
Teljesítmény:
Módosítás SQLite kapcsolat időtúllépés ha a csatlakozás belül Python
Ez lesz a forgatókönyv, amikor a többszörös kapcsolat hozzáférési egy SQLite adatbázis, valamint a folyamatok végrehajtása néhány adat módosítás művelet az adatbázis, Hogy végre adatok módosítása kapcsolat kell, hogy zár, azaz az SQLite adatbázis zárolva van, amíg az ügylet követett el. Az adatbázishoz való csatlakozás során megadott időtúllépési paraméter határozza meg, hogy mennyi ideig kell várnia a kapcsolatnak, amíg a zár eltűnik, amíg kivételt nem emel.,
az időtúllépési paraméter alapértelmezett értéke 5,0 (öt másodperc). Nem kell megadnia a csatlakozás közben, mert ez egy alapértelmezett érték. azaz, amikor csatlakozik SQLite a Python, és nem kap választ 5 másodpercen belül, a program emel kivételt. De ha szembe kapcsolat timeout kérdés, és meg akarta növelni azt, akkor ezt egy timeout argumentum egy sqlite3.connect
függvény.
Let see how to change the timeout value while connecting SQLite from within Python.,
kimenet:
Connected to SQLiteTotal rows are: (2,)The Sqlite connection is closed
az SQLite adatbázis-kapcsolat megnyitása óta bekövetkezett összes változás azonosítása
ellenőrzési vagy statisztikai célokra ha meg akarja találni az adatbázis-kapcsolat megnyitása óta módosított, beillesztett vagy törölt adatbázissorok számát, akkor használhatja a connection.total_changes
egy Python sqlite3 modul módszerét.
aconnection.total_changes
metódus az érintett adatbázissorok teljes számát adja vissza. Lássuk a Python példát, hogy megtalálja az adatbázis-kapcsolat megnyitása óta végrehajtott összes változást.,
kimenet:
Connected to SQLiteTotal Rows affected since the database connection was opened: 3sqlite connection is closed
készítsen biztonsági másolatot az SQLite adatbázisról a Python
Python sqlite3 modul egy olyan funkciót biztosít, amely biztonsági másolatot készít az SQLite adatbázisról. A connection.backup()
módszer segítségével biztonsági másolatot készíthet az SQLite adatbázisról.
connection.backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
Ez a függvény biztonsági másolatot készít az SQLite adatbázisról, majd egy másolatot ír az argumentum céljába, amelynek egy másik csatlakozási példánynak kell lennie., Alapértelmezés szerint, vagy ha az oldalak 0 vagy negatív egész számúak, a teljes adatbázis egyetlen lépésben másolódik; ellenkező esetben a módszer egy ciklust hajt végre, amely egyszerre akár oldalakra másol.
a név argumentum megadja a másolni kívánt adatbázist. Az alvó argumentum meghatározza az alvó másodpercek számát az adatbázis fennmaradó oldalainak biztonsági mentésére irányuló egymást követő kísérletek között. az alvó argumentum egész számként vagy lebegőpontos értékként is megadható.
tekintse meg a példát, hogy egy meglévő adatbázist másoljon egy másikba.,
kimenet:
Megjegyzés:
- az SQLite-hoz való csatlakozás után mindkét adatbázist két különböző kapcsolat segítségével nyitottuk meg.
- ezután végrehajtottunk egy
connection.backup()
módszert egy első csatlakozási példány használatával. Ezenkívül meghatároztuk az egyes iterációkban másolandó adatbázis-oldalak számát.
Python SQLite Exercise Project
kérjük, oldja meg a Python Adatbázis programozási gyakorlat mester adatbázis programozás Python.
Leave a Reply