formålet med denne Python SQLite veiledningen er å vise hvordan man kan utvikle Python database programmer med SQLite database. Du vil lære å utføre SQLite database operasjoner fra Python.
Som dere alle vet, SQLite er en C-språk bibliotek som implementerer en SQL database engine, som er relativt rask, serverless og selvstendig, høy pålitelig. SQLite er den mest brukte database motoren i testmiljø (Se SQLite hjemmesiden)., SQLite kommer innebygd med de fleste datamaskiner og mobile enheter og nettlesere. Python ‘ s offisielle sqlite3 modulen hjelper oss til å jobbe med SQLite database.
Python-sqlite3 modul følger Python Database API Specification v2.0 (PEP 249). PEP 249 gir en SQL-grensesnitt som er utviklet for å stimulere og opprettholde likheten mellom Python-modulene som brukes til å få tilgang til databaser.,
Denne opplæringen fokuserer hovedsakelig på: –
– >
- Koble til SQLite database fra Python og Skape en SQLite database og tabeller
- Neste, vil vi dekke SQLite Datatyper og det er tilsvarende Python typer
- Neste, vil vi lære hvordan å utføre SQLite CRUD drift dvs.,ieve digitale data i SQLite ved hjelp av Python
- Neste, vil det dekke SQLite transaksjonen Håndtering, skape og telefoni SQLite funksjoner, og håndtering av feil teknikker for å utvikle robuste python-programmer med SQLite database
- Det vil også la deg få vite hvordan å opprette og administrere en in-memory database og konvertere SQLite verdier til tilpasset Python typer
- Ta en sikkerhetskopi av SQLite database fra Python
La se hver seksjon nå.,
Python SQLite-Tilkobling
Denne delen får du vite hvordan du oppretter en SQLite database og koble til den gjennom python bruker sqlite3 modul.
for Å opprette en tilkobling til SQLite, må du angi database navnet du vil koble til. Hvis du angir database fil som allerede presenterer på disk, det vil koble til det. Men hvis den angitte SQLite database filen ikke finnes, SQLite oppretter en ny database for deg.,
Du må følge disse trinnene for å koble til SQLite
- Bruk
connect()
metode for en sqlite3 modul og passere database navn som et argument. - Opprette en markøren til objektet ved å bruke den forbindelse objektet returnert ved å koble metode for å utføre SQLite spørsmål fra Python.
- Tett Markøren til objektet og SQLite database connection-objektet når arbeidet er gjort.
- Fange database unntak hvis det er noen som kan oppstå i denne forbindelse prosessen.
følgende Python-programmet oppretter en ny database fil «SQLite_Python.,db» og skriver ut SQLite versjon detaljer.
Du bør få følgende resultat når du har koblet til SQLite fra Python.
– >
Database created and Successfully Connected to SQLiteSQLite Database Version is: The SQLite connection is closed
Forstå SQLite forbindelse Koden i detalj
importer sqlite3
- Denne linjen importerer sqlite3 modul i programmet vårt. Ved hjelp av klasser og metoder er definert i sqlite3 module vi kan kommunisere med SQLite database.
sqlite3.,connect()
- Med
connect()
metode vi kan opprette en tilkobling til SQLite database. Denne metoden returnerer SQLite Forbindelse Objekt. - tilkobling objektet er ikke tråd-safe. den sqlite3 modulen tillater ikke dele forbindelser mellom tråder. Hvis du likevel prøve å gjøre så, vil du få et unntak ved kjøring.
-
connect()
metode aksepterer ulike argumenter. I vårt eksempel, vi passerte database navn-argumentet for å koble til.
markøren = sqliteConnection.,markøren()
- ved Hjelp av en tilkobling objekt vi kan lage en markøren til objektet som gjør det mulig for oss å utføre SQLite kommando/spørringer via Python.
- Vi kan lage så mange pekere som vi ønsker fra en enkelt tilkobling objekt. Liker forbindelse objekt, denne markøren objektet er heller ikke tråd-safe. den sqlite3 modulen tillater ikke deling pekere mellom tråder. Hvis du likevel prøve å gjøre så, vil du få et unntak ved kjøring.
Etter dette, laget vi en SQLite-spørring for å få databasen versjon.
markøren.,execute()
- ved Hjelp av markøren er execute-metode vi kan utføre en database drift eller spørring fra Python.
cursor.execute()
metoden tar en SQLite-spørring som parameter og returnerer resultSet dvs. ingenting, men en database rader. - kan Vi hente søkeresultatet fra resultSet ved hjelp av markøren metoder som for eksempel
- I vårt eksempel, vi er utfører en
SELECT version();
spørring til å hente SQLite versjon.,
prøv-bortsett fra-til slutt blokk: Vi plassert alle våre koden i prøve-bortsett fra blokk til å fange SQLite database unntak og feil som kan oppstå under denne prosessen.
- Med
sqlite3.Error
klasse av sqlite3 modul, kan vi håndtere alle database feil og unntak som kan oppstå mens du arbeider med SQLite fra Python. - ved Hjelp av denne tilnærmingen kan vi gjøre vårt program robust.
sqlite3.Error
klasse hjelper oss til å forstå feil i detalj. Det gir en feil meldingen og feilkoden.
markøren.close() og tilkobling.,close()
- Det er alltid lurt å lukke markøren og tilkobling objekt når arbeidet blir fullført, for å unngå database problemer.
Opprett SQLite tabell fra Python
I denne delen, vil vi lære hvordan du kan opprette en tabell i SQLite database fra Python bruker sqlite3 modul. Opprette en tabell uttalelse er en DDL spørring la se hvordan du skal kjøre det fra Python.
I dette eksemplet, vi skaper en «SqliteDb_developers» bordet inne i «SQLite_Python.db-database.,
Trinn for å opprette en tabell i SQLite fra Python: –
– >
- Koble til SQLite ved hjelp av en
sqlite3.connect()
. Jeg har forklart SQLite forbindelse kode i begynnelsen av denne artikkelen. - Utarbeide en lag tabell-spørring.
- Utføre spørring ved hjelp av en
cursor.execute(query)
- I slutten, i Nærheten av SQLite database tilkobling og markøren objekt.,
Output:
Successfully Connected to SQLiteSQLite table created:the sqlite connection is closed
SQLite Datatyper og det er tilsvarende Python typer
Før du fortsetter videre på gjennomføring av SQLite CRUD operasjoner fra Python først forstå SQLite data type og deres tilsvarende Python typer, som vil hjelpe oss til å lagre og lese data fra SQLite bordet.
SQLite database motoren har flere oppbevaring klasser til å lagre verdier. Hver verdien som er lagret i en SQLite database har en av følgende lagring klasser eller typer data.,
SQLite Datatyper:
- NULL: – verdien er en NULL-verdi.
- HELTALL: – for Å lagre numeriske verdi. Heltall som er lagret i 1, 2, 3, 4, 6, eller 8 byte avhengig av omfanget av nummeret.
- EKTE: – verdien er en flytende-verdi, for eksempel 3.14 verdien av PI
- TEKST: – verdien er en tekststreng, TEKST verdi lagret med UTF-8, UTF-16BE eller UTF-16LE koding.
- BLOB: – verdien er en blob av data, dvs., binære data. Den brukes til å lagre bilder og filer.
følgende Python typer konvertert til SQLite uten noen problem., Så når du endrer eller lese fra SQLite tabell ved å utføre CRUD operasjoner, husk denne tabellen.,
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 Sette inn, Oppdatere, Slette operasjoner fra Python.
Nå, vi vet bordet, og det er kolonne detaljer, så la oss gå til crud operasjoner. Jeg har opprettet en egen veiledning på hver operasjon for å dekke det i detalj. La se hver seksjon nå.
- Sett inn data til SQLite Tabell fra Python – I denne delen, vil vi lære å utføre SETT inn kommando fra python for å sette inn poster til SQLite bordet.
- Les SQLite Tabellen er data fra Python – I denne artikkelen, vi skal lære å utføre SQLite VELGE en spørring fra et Python-program for å hente bordet rader., Også, vil jeg la deg få vite hvordan du kan bruke
fetchall()
,fetchmany()
, ogfetchone()
metoder for markøren klassen til å hente begrenset rader fra bordet for å forbedre ytelsen. - Oppdatere data for SQLite tabell fra Python – I denne delen, vil vi lære å utføre OPPDATERINGEN spørring fra python til å endre registreringer av SQLite bordet.
- Slett data fra SQLite tabell fra Python – I denne delen, vil vi lære hvordan å utføre SLETT spørring fra python for å fjerne oppføringer fra SQLite bordet.,
Utføre SQL-Fil (script) ved hjelp av markøren er executescript funksjon
SQLite skript er nyttig for de fleste av den daglige jobben. SQLite script er et sett av SQL-kommandoer som er lagret som en fil (i .sql-format).
En SQLite skriptet inneholder en eller flere SQL-operasjoner som du vil deretter kjøre fra kommandolinjen når det er nødvendig.
Nedenfor er noen vanlige scenarier der vi kan bruke SQLite skript
- Back-Up Flere Databaser samtidig.
- Sammenlign Rad Teller i Tabeller Fra To Forskjellige Databaser Med Samme Skjema.,
- ha alle LAG TABELL SQL-kommandoer i en database script. Så du kan opprette en database skjema på en server.
Du kan kjøre skriptet fra SQLite kommandolinjen ved hjelp av den .les kommando, som dette:
sqlite> .read mySQLiteScript.sql
For eksempel, jeg har laget et eksempel SQLite skript som vil lage to tabeller. Dette er manus som jeg har skapt.
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);
la oss Nå se hvordan utføre en SQLite scriptet fra Python.
– >
Output: SQLite tabeller som er opprettet ved å utføre en SQL-skript fra Python.,
Successfully Connected to SQLiteSQLite script executed successfullysqlite connection is closed
Merk: Når du har koblet til SQLite, Vi kan lese alt innhold i en SQLite script-fil som er lagret på disk og kopiert det inn en python-string-variabel. Da vi ringte cursor.executscript(script)
metode for å utføre SQL-setninger i en samtale.
Sett inn/Hente digitale data i SQLite ved hjelp av Python
- I denne delen, vil jeg la deg få vite hvordan du setter inn eller lagre digital informasjon, for eksempel en fil, bilde, video, eller en sang som en BLOB data til SQLite tabell fra python.,
- Også lære hvordan vi kan lese en fil, bilde, video, sang, eller alle digitale data som er lagret i en SQLite ved hjelp av Python.
Se vår komplette guide på Python SQLite BLOB å Sette inn og Hente filen og bilder.
Opprett Eller Omdefinere SQLite Funksjoner ved hjelp av Python
Python-sqlite3 modulen gir oss muligheten til å opprette og oppdatere SQL-funksjoner fra i Python. Jeg har laget en egen veiledning for å dekke det i detalj. Vennligst se Hvordan å opprette og oppdatere SQL-funksjoner fra i Python.,
Se vår komplette guide på Opprett Eller å Omdefinere SQLite Funksjoner fra i Python.
Arbeide med SQLite dato og tidsstempel typer i Python og vice-versa
noen Ganger trenger vi å sette inn eller lese dato eller DateTime-verdi fra en SQLite-tabellen. Så hvis du arbeider med en dato eller tidsstempel verdier, vennligst se vår egen tutorial på å arbeide med SQLite DateTime verdier i Python.
SQLite Database Unntak
Unntak sqlite3.Advarsel
- En underklassen av Unntaket. Og du kan ignorere det hvis du vil det ikke stoppe henrettelsen.,
Unntak sqlite3.Feil
- base klasse av andre unntak i sqlite3 modul. Det er en underklassen av Unntaket.
Unntak sqlite3.DatabaseError
- Unntak hevet for feil som er knyttet til databasen.
Eksempler: Hvis du forsøker å åpne en fil som en sqlite3 database som IKKE er en database fil, vil du få sqlite3.DatabaseError: – filen er kryptert eller ikke er en database
Unntak sqlite3.IntegrityError
- Underklassen av en DatabaseError., Du vil få denne Unntak når relasjonell integritet av databasen er berørt, for eksempel, en sekundærnøkkel sjekk mislykkes.
Unntak sqlite3.ProgrammingError
- Det er også en underklassen av DatabaseError. Dette unntaket hevet på grunn av programmeringsfeil, for eksempel, å opprette en tabell med de samme som allerede eksisterer, syntaks feil i SQL-spørringer.
Unntak sqlite3.OperationalError
- Det er også en underklassen av DatabaseError. Denne feilen er ikke i vår kontroll. Dette unntaket hevet for feil som er knyttet til databasen drift.,
- Eksempler: en utilsiktet frakobling, server er ned, oppstår et tidsavbrudd, datakilden problemer. server ned
Unntak sqlite3.NotSupportedError
- vil Du få et unntak hevet når database API ble brukt som støttes ikke av databasen.
- Eksempel: du ringer rollback () – metoden på en forbindelse som ikke støtter transaksjonen. Kall begå etter å opprette table-kommandoen.,
Så det vil alltid være lurt å skrive alle dine database drift koden i try-blokken, slik at du kan fange unntak i, bortsett fra blokkere hvis noen og ta korrigerende tiltak mot det.
For eksempel, la oss prøve å sette data inn i en tabell som ikke finnes i den SQLite database og Skrive den fulle unntak stabelen.,
Output:
Endre SQLite tidsavbrudd for tilkobling når du kobler fra Python
Det kan være scenariet når flere tilkoblinger få tilgang til en SQLite database, og en av de prosesser utføre noen data modifikasjon drift på en database, for Å utføre data modifikasjon forbindelse behov for å ta lås dvs., og SQLite-database er låst til at transaksjonen er begått. For timeout-parameteren vi spesifiserer når du kobler til databasen bestemmer hvor lenge tilkoblingen skal vente til låsen for å gå bort til å heve et unntak.,
standard verdi for timeout-parameteren er 5.0 (fem sekunder). Du trenger ikke å oppgi det når du kobler fordi det er en standard verdi. altså, når du kobler til SQLite fra Python, og du ikke får svar innen 5 sekunder, vil programmet vise et unntak. Men hvis du er vendt tidsavbrudd for tilkobling problemet, og ønsket å øke det, kan du gjøre dette ved hjelp av en timeout-argumentet i en sqlite3.connect
funksjon.
La se hvordan du kan endre tidsavbrudd når du kobler SQLite fra i Python.,
Output:
Connected to SQLiteTotal rows are: (2,)The Sqlite connection is closed
Identifisere sum endringer siden SQLite database forbindelse ble åpnet
For revisjon eller statistikk formål hvis du ønsker å finne tall på database rader som har blitt endret, er satt inn, eller slettet siden database forbindelse ble åpnet, kan du bruke connection.total_changes
metode for en Python-sqlite3 modul.
connection.total_changes
metoden returnerer totalt antall database rader som har blitt berørt. La se Python eksempel å finne sum endringer som har blitt gjort siden database forbindelse ble åpnet.,
Output:
Connected to SQLiteTotal Rows affected since the database connection was opened: 3sqlite connection is closed
Ta en sikkerhetskopi av SQLite database fra Python
Python-sqlite3 modulen gir en funksjon for å ta en sikkerhetskopi av SQLite database. Ved hjelp av en connection.backup()
metoden kan du ta sikkerhetskopi av SQLite database.
connection.backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
Denne funksjonen tar en sikkerhetskopi av SQLite database, og en kopi vil bli skrevet inn i argumentet mål, som må være en annen Tilkobling eksempel., Som standard, eller når sidene er enten 0 eller negativt heltall, hele databasen er kopiert i ett enkelt trinn; ellers er den metoden utfører en løkke kopiering opp til sider på en gang.
navn-argumentet angir den databasen som du ønsker å kopiere. Søvn argumentet angir antall sekunder å sove med mellom etterfølgende forsøk å ta backup av de gjenværende sidene i en database. søvn argumentet kan enten angis som et heltall eller en flytende-verdi.
La se eksempel for å kopiere en eksisterende database til en annen.,
Output:
Merk:
- Etter at du har koblet til SQLite, åpnet Vi begge databasene ved hjelp av to forskjellige forbindelser.
- Neste, vi utførte en
connection.backup()
metode som bruker en første-tilkobling eksempel. Vi har også angitt antall i databasen sider til å kopiere i hver iterasjon.
Python SQLite Trening Prosjektet
Vennligst løse våre Python-Programmering Database Øvelse å mestre database programmering i Python.
Leave a Reply