scopul acestui tutorial Python SQLite este de a demonstra modul de a dezvolta aplicații de baze de date Python cu baza de date SQLite. Veți învăța cum să efectuați operațiuni de baze de date SQLite de la Python.după cum știți cu toții, SQLite este o bibliotecă C-language care implementează un motor de baze de date SQL care este relativ rapid, fără server și autonom, de înaltă fiabilitate. SQLite este cel mai frecvent utilizat motor de baze de date în mediul de testare (consultați pagina de pornire SQLite)., SQLite vine încorporat cu majoritatea computerelor și dispozitivelor mobile și browserelor. Modulul Oficial SQLite3 Python ne ajută să lucrăm cu baza de date SQLite.modulul Python SQLite3 aderă la specificația API a bazei de date Python V2 .0 (PEP 249). PEP 249 oferă o interfață SQL care a fost proiectată pentru a încuraja și menține similitudinea dintre modulele Python care sunt utilizate pentru a accesa bazele de date.,
Acest tutorial se concentrează în principal pe: –
- Conectarea la baza de date SQLite de la Python și Crearea unei baze de date SQLite și tabele
- Apoi, vom acoperi tipuri de date SQLite și este corespunzătoare Python tipuri
- Apoi, vom învăța cum să efectuați SQLite CRUD operare respectiv,cred ca se apropie de date digitale în SQLite folosind Python
- Apoi, se va acoperi SQLite tranzacție de Manipulare, de a crea și de asteptare SQLite funcții, și de eroare-tehnici de manipulare pentru a dezvolta robust python programe cu baze de date SQLite
- de asemenea, Acesta va lasa sa stii cum de a crea și de a gestiona o memorie de date și de a converti SQLite valori personalizate Python tipuri
- Ia-o copie de rezervă a bazei de date SQLite din cadrul Python
Să vedem fiecare secțiune acum.,această secțiune vă permite să știți cum să creați o bază de date SQLite și să vă conectați la ea prin python folosind modulul sqlite3.pentru a stabili o conexiune la SQLite, trebuie să specificați numele bazei de date pe care doriți să o conectați. Dacă specificați numele fișierului bazei de date care se prezintă deja pe disc, acesta se va conecta la acesta. Dar dacă fișierul bazei de date SQLite specificat nu există, SQLite creează o nouă bază de date pentru dvs.,
trebuie să urmați următorii pași pentru a vă conecta la SQLite
- Utilizare
connect()
metoda de sqlite3 module și treacă numele bazei de date ca argument. - creați un obiect cursor folosind obiectul conexiune returnat de metoda connect pentru a executa interogări SQLite din Python.
- închideți obiectul cursorului și obiectul de conectare la baza de date SQLite atunci când se lucrează.
- captură de baze de date excepție dacă este cazul, care pot apărea în timpul acestui proces de conectare.următorul program Python creează un nou fișier de bază de date „sqlite_python.,db ” și imprimă detaliile versiunii SQLite.
ar trebui să obțineți următoarea ieșire După conectarea la SQLite din Python.
Database created and Successfully Connected to SQLiteSQLite Database Version is: The SQLite connection is closed
de a Înțelege SQLite Cod de conexiune în detaliu
import sqlite3
- Această linie importurile de sqlite3 modul în programul nostru. Folosind clasele și metodele definite în modulul sqlite3 putem comunica cu baza de date SQLite.
sqlite3.,connect ()
- folosind metoda
connect()
putem crea o conexiune la baza de date SQLite. Această metodă returnează obiectul de conexiune SQLite. - obiectul de conectare nu este sigur. modulul sqlite3 nu permite partajarea conexiunilor între fire. Dacă totuși încercați să faceți acest lucru, veți obține o excepție în timpul rulării.
- metoda
connect()
acceptă diverse argumente. În exemplul nostru, am trecut argumentul numelui bazei de date pentru conectare.
cursor = sqliteConnection.,cursor ()
- folosind un obiect de conexiune putem crea un obiect cursor care ne permite să executăm comenzi/interogări SQLite prin Python.
- putem crea cât mai multe cursoare pe care le dorim dintr-un singur obiect de conexiune. Ca și obiectul de conectare, acest obiect cursor nu este, de asemenea, sigur. modulul sqlite3 nu permite partajarea cursoarelor între fire. Dacă totuși încercați să faceți acest lucru, veți obține o excepție în timpul rulării.după aceasta, am creat o interogare SQLite pentru a obține versiunea bazei de date.
cursor.,execute ()
- folosind metoda de executare a cursorului putem executa o operație de bază de date sau o interogare din Python. Metoda
cursor.execute()
ia o interogare SQLite ca parametru și returnează resultSet adică nimic altceva decât o bază de date rânduri. - putem prelua rezultatul interogării din resultSet folosind metode de cursor, cum ar fi
- în exemplul nostru, executăm o interogare
SELECT version();
pentru a prelua versiunea SQLite.,
încercați-cu excepția-în cele din urmă bloc: am plasat tot codul nostru în blocul încercați-cu excepția pentru a prinde baza de date SQLite excepții și erori care pot apărea în timpul acestui proces.
- folosind clasa
sqlite3.Error
a modulului sqlite3, putem gestiona orice eroare de bază de date și excepție care pot apărea în timp ce lucrați cu SQLite din Python.folosind această abordare putem face ca aplicația noastră să fie robustă. Clasasqlite3.Error
ne ajută să înțelegem eroarea în detaliu. Returnează un mesaj de eroare și un cod de eroare.
cursor.închide () și conexiune.,close ()
- este întotdeauna o practică bună să închideți cursorul și obiectul de conectare odată ce munca dvs. este finalizată pentru a evita problemele bazei de date.
Creare tabel SQLite din Python
În această secțiune, vom învăța cum să creăm un tabel în baza de date SQLite din Python folosind modulul sqlite3. Creați o declarație de tabel este o interogare DDL să vedem cum să-l execute de la Python.
în acest exemplu, creăm un tabel „sqlitedb_developers” în interiorul „sqlite_python.db ” baza de date.,
pași pentru crearea unui tabel în Sqlite din Python: –
- Conectați-vă la SQLite folosind un
sqlite3.connect()
. Am explicat codul de conectare SQLite la începutul acestui articol. - pregătiți o interogare Creare tabel.
- executați interogarea folosind un
cursor.execute(query)
- în final, închideți conexiunea bazei de date SQLite și obiectul cursorului.,
Ieșire:
Successfully Connected to SQLiteSQLite table created:the sqlite connection is closed
tipuri de date SQLite și este corespunzătoare Python tipuri
Înainte de a trece mai departe de executare SQLite operațiunile CRUD de Python înțelegem mai întâi SQLite tip de date și lor corespunzătoare Python tipuri, care ne va ajuta să stoca și citi datele de la SQLite masă.motorul de baze de date SQLite are mai multe clase de stocare pentru a stoca valori. Fiecare valoare stocată într-o bază de date SQLite are una dintre următoarele clase de stocare sau tipuri de date.,
tipuri de date SQLite:
- NULL: – valoarea este o valoare nulă.
- INTEGER: – pentru a stoca valoarea numerică. Numărul întreg stocat în 1, 2, 3, 4, 6, sau 8 octeți în funcție de mărimea numărului.
- REAL: – valoarea este o valoare în virgulă mobilă, de exemplu, valoarea 3.14 a PI
- TEXT: – valoarea este un șir de text, valoarea textului stocată folosind codificarea UTF-8, UTF-16be sau UTF-16LE.
- BLOB: – valoarea este o pată de date, adică date binare. Este folosit pentru a stoca imagini și fișiere.
următoarele tipuri Python convertite în SQLite fără nici o problemă., Deci, atunci când modificați sau citiți din tabelul SQLite prin efectuarea operațiunilor CRUD, amintiți-vă acest tabel.,
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, actualizare, șterge operațiunile din Python.
acum, știm tabelul și detaliile coloanei, așa că haideți să trecem la operațiunile crud. Am creat un tutorial separat pentru fiecare operație pentru a-l acoperi în detaliu. Să vedem fiecare secțiune acum.
- introduceți date în tabelul SQLite din Python-în această secțiune, vom învăța cum să executați comanda INSERT din python pentru a insera înregistrări în tabelul SQLite.
- Citiți datele tabelului SQLite din Python – în acest articol, vom învăța cum să executăm interogarea SQLite SELECT dintr-o aplicație Python pentru a prelua rândurile tabelului., De asemenea, eu va lasa sa stii cum să utilizați
fetchall()
,fetchmany()
șifetchone()
metode de un cursor clasa a aduce limitat rânduri din tabel pentru a îmbunătăți performanța. - actualizați datele tabelului SQLite din Python – în această secțiune, vom învăța cum să executăm interogarea de actualizare din python pentru a modifica înregistrările tabelului SQLite.
- ștergeți datele din tabelul SQLite din Python-în această secțiune, vom învăța cum să executați interogarea DELETE din python pentru a elimina înregistrările din tabelul SQLite.,
executați fișierul SQL (scripturi) folosind funcția executescript a cursorului
scripturile SQLite sunt la îndemână pentru majoritatea lucrărilor zilnice. Script SQLite este un set de comenzi SQL salvate ca fișier (în .formatul sql).
un script SQLite conține una sau mai multe operații SQL pe care le veți executa apoi din linia de comandă ori de câte ori este necesar.mai jos sunt câteva scenarii comune în cazul în care putem folosi script-uri SQLite
- Back-Up Mai multe baze de date simultan.
- comparați numărul de rânduri din tabele din două baze de date diferite cu aceeași schemă.,
- păstrați toate comenzile SQL CREATE TABLE într-un script de bază de date. Deci, puteți crea schema de baze de date pe orice server.
puteți executa script-ul din linia de comandă SQLite folosind .citiți comanda, astfel:
sqlite> .read mySQLiteScript.sql
pentru acest exemplu, am creat un script SQLite eșantion care va crea două tabele. Acesta este scenariul pe care l-am creat.
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);
acum să vedem cum se execută un script SQLite din Python.
ieșire: tabele SQLite create prin executarea unui script SQL din Python.,
Successfully Connected to SQLiteSQLite script executed successfullysqlite connection is closed
Notă: După conectarea la SQLite, Am citit toate conținutul unui SQLite script fișiere stocate pe disc și l-a copiat într-un piton variabilă șir. Apoi am sunat
cursor.executscript(script)
metoda de a executa toate instrucțiunile SQL într-un singur apel.Inserare / preluare date digitale în Sqlite folosind Python
- În această secțiune, vă voi anunța cum să inserați sau să salvați orice informație digitală, cum ar fi un fișier, o imagine, un videoclip sau o melodie ca date BLOB în tabelul SQLite din python.,
- De asemenea, aflați cum putem citi un fișier, o imagine, un videoclip, o melodie sau orice date digitale stocate în Sqlite folosind Python.
consultați ghidul nostru complet despre Python SQLite BLOB pentru a insera și prelua fișiere și imagini.
crearea sau redefinirea funcțiilor SQLite folosind Python
modulul Python SQLite3 ne oferă posibilitatea de a crea și redefini funcțiile SQL din cadrul Python. Am creat un tutorial separat pentru a-l acoperi în detaliu. Vă rugăm să consultați modul de creare și redefinire a funcțiilor SQL din Python.,
consultați ghidul nostru complet despre crearea sau redefinirea funcțiilor SQLite din Python.
lucrul cu tipurile de date și marcaje temporale SQLite în Python și invers
uneori trebuie să inserăm sau să citim Data sau valoarea DateTime dintr-un tabel SQLite. Deci, dacă lucrați cu o dată sau valori de timestamp, atunci vă rugăm să consultați tutorialul nostru separat despre lucrul cu valorile SQLite DateTime în Python.
excepții de baze de date SQLite
excepție SQLite3.Atenție
- o subclasă de excepție. Și o poți ignora dacă vrei să nu oprească execuția.,
excepție sqlite3.Eroare
- clasa de bază a celorlalte excepții din modulul sqlite3. Este o subclasă de excepție.
excepție sqlite3.DatabaseError
- excepție ridicată pentru erori care sunt legate de baza de date.
Exemple: dacă încercați să deschideți un fișier ca o bază de date sqlite3 care nu este un fișier de bază de date, veți obține sqlite3.DatabaseError: fișierul este criptat sau nu este o bază de date
excepție sqlite3.Pentru a afla mai multe detalii, va rugam sa ne contactati., Veți obține această excepție atunci când integritatea relațională a bazei de date este afectată, de exemplu, o verificare a cheii străine eșuează.
- folosind metoda de executare a cursorului putem executa o operație de bază de date sau o interogare din Python. Metoda
excepție sqlite3.ProgrammingError
- este, de asemenea, o subclasă de DatabaseError. Această excepție a fost ridicată din cauza erorilor de programare, de exemplu, crearea unui tabel cu același lucru care există deja, eroare de sintaxă în interogările SQL.
excepție sqlite3.OperationalError
- este, de asemenea, o subclasă de DatabaseError. Această eroare nu este în controlul nostru. Această excepție ridicată pentru erori care sunt legate de funcționarea bazei de date.,
- Exemple: o deconectare accidentală, server în jos, apare un timeout, problemele sursei de date. server jos
excepție sqlite3.NotSupportedError
- veți primi o excepție ridicată atunci când a fost utilizată API-ul bazei de date, care nu este acceptată de baza de date.
- exemplu: apelarea metodei rollback () pe o conexiune care nu acceptă tranzacția. Apelarea comiterii după crearea comenzii tabelului.,deci, va fi întotdeauna recomandabil să scrieți tot codul de operare al bazei de date în blocul try, astfel încât să puteți prinde excepții, cu excepția blocului, dacă există și să luați măsurile corective împotriva acestuia.
de exemplu, să încercăm să inserăm date într-un tabel care nu există în baza de date SQLite și să tipărim stiva completă de excepții.,
Ieșire:
Schimba SQLite timeout conexiune la conectarea din cadrul Python
poate fi scenariul atunci când mai multe conexiuni de acces la o bază de date SQLite, și unul dintre procesele efectuează o operațiune de modificare a datelor în baza de date, Pentru a efectua modificarea datelor de conectare trebuie să ia de blocare de exemplu, baza de date SQLite este blocat până când tranzacția este angajat. Parametrul timeout pe care îl specificăm în timpul conectării la baza de date determină cât timp trebuie să aștepte conexiunea până când blocarea va dispărea până la ridicarea unei excepții.,
valoarea implicită pentru parametrul timeout este 5.0 (cinci secunde). Nu este necesar să o specificați în timpul conectării, deoarece este o valoare implicită. adică, ori de câte ori vă conectați la SQLite din Python și nu ați primit un răspuns în 5 secunde, programul dvs. va ridica o excepție. Dar dacă vă confruntați cu o problemă de expirare a conexiunii și doriți să o măriți, puteți face acest lucru folosind un argument de expirare a unei funcții
sqlite3.connect
.Să vedem cum să modificați valoarea timeout în timp ce conectați SQLite din Python.,
Ieșire:
Connected to SQLiteTotal rows are: (2,)The Sqlite connection is closed
Identifica total modificări de la baza de date SQLite sens a fost deschis
Pentru audit sau statistici scop, dacă doriți să găsiți numărul de rânduri de date care au fost modificat, inserat sau eliminat, deoarece conexiunea de date a fost deschis, puteți folosi
connection.total_changes
metoda de un Piton sqlite3 module.metoda
connection.total_changes
returnează numărul total de rânduri de baze de date care au fost afectate. Să vedem exemplul Python pentru a găsi modificările totale care au fost făcute de la deschiderea conexiunii bazei de date.,Ieșire:
Connected to SQLiteTotal Rows affected since the database connection was opened: 3sqlite connection is closed
Ia-o copie de rezervă a bazei de date SQLite din cadrul Python
Python sqlite3 modul oferă o funcție pentru a face o copie de rezervă a bazei de date SQLite. Folosind un
connection.backup()
metoda puteți lua backup de baze de date SQLite.connection.backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
Această funcție are o copie de rezervă a bazei de date SQLite, și o copie va fi scris în argument țintă, care trebuie să fie o altă Conexiune de exemplu., În mod implicit, sau atunci când paginile sunt fie 0 sau un număr întreg negativ, întreaga bază de date este copiată într-un singur pas; în caz contrar, metoda efectuează o buclă de copiere până la pagini la un moment dat.
argumentul nume specifică baza de date pe care doriți să copiați. Argumentul sleep definește numărul de secunde pentru a dormi între încercările succesive de backup pentru paginile rămase ale unei baze de date. argumentul sleep poate fi specificat fie ca un număr întreg, fie ca o valoare în virgulă mobilă.
Să vedem exemplul pentru a copia o bază de date existentă în alta.,
Output:
notă:
- După conectarea la SQLite, am deschis ambele baze de date folosind două conexiuni diferite.
- apoi, am executat o metodă
connection.backup()
folosind o primă instanță de conectare. De asemenea, am specificat numărul de pagini de baze de date pentru a copia în fiecare iterație.
Python SQLite Exercise Project
vă rugăm să rezolvați exercițiul nostru de programare a bazei de date Python pentru a stăpâni programarea bazelor de date în Python.
Leave a Reply