Le but de ce tutoriel Python SQLite est de montrer comment développer des applications de base de données Python avec la base de données SQLite. Vous apprendrez à effectuer des opérations de base de données SQLite à partir de Python.
comme vous le savez tous, SQLite est une bibliothèque en langage C qui implémente un moteur de base de données SQL relativement rapide, sans serveur et autonome, hautement fiable. SQLite est le moteur de base de données le plus couramment utilisé dans l’environnement de test (reportez-vous à la page D’accueil de SQLite)., SQLite est intégré avec la plupart des ordinateurs et des appareils mobiles et des navigateurs. Le module sqlite3 officiel de Python nous aide à travailler avec la base de données SQLite.
Python sqlite3 module adhère à Python Database API Specification v2.0 (PEP 249). PEP 249 fournit une interface SQL conçue pour encourager et maintenir la similitude entre les modules Python utilisés pour accéder aux bases de données.,
Ce tutoriel se concentre principalement sur: –
- Se connecter à la base de données SQLite à partir de Python et créer une base de données SQLite et des tables
- ensuite, nous allons couvrir les types de données SQLite et ses types Python correspondants
- ensuite, nous allons apprendre à effectuer,ieve digital data in SQLite using Python
- ensuite, il couvrira la gestion des transactions SQLite, la création et l’appel de fonctions SQLite, et les techniques de gestion des erreurs pour développer des programmes python robustes avec la base de données SQLite
- Il vous permettra également de savoir comment créer et gérer une base de données en mémoire et convertir>
Python sqlite3 module de travail laissez voir chaque section maintenant.,
connexion Python sqlite
Cette section vous permet de savoir comment créer une base de données SQLite et de vous y connecter via python à l’aide du module sqlite3.
pour établir une connexion à SQLite, vous devez spécifier le nom de la base de données que vous souhaitez connecter. Si vous spécifiez le nom du fichier de base de données qui se présente déjà sur le disque, il s’y connectera. Mais si votre fichier de base de données SQLite spécifié n’existe pas, SQLite crée une nouvelle base de données pour vous.,
Vous devez suivre les étapes suivantes pour vous connecter à SQLite
- utilisez la méthode
connect()
d’un module sqlite3 et passez le nom de la base de données en tant qu’argument. - créez un objet cursor à l’aide de l’objet connection renvoyé par la méthode connect pour exécuter des requêtes sqlite à partir de Python.
- fermez L’objet Cursor et l’objet de connexion à la base de données SQLite lorsque le travail est terminé.
- Catch database exception le cas échéant qui peut se produire au cours de ce processus de connexion.
Le programme Python suivant crée un nouveau fichier de base de données « SQLite_Python.,db » et imprime les détails de la version sqlite.
Vous devriez obtenir la sortie suivante après la connexion à SQLite à partir de Python.
Database created and Successfully Connected to SQLiteSQLite Database Version is: The SQLite connection is closed
Comprendre la connexion SQLite Code en détail
import sqlite3
- Cette ligne d’importer le module sqlite3 dans notre programme. En utilisant les classes et les méthodes définies dans le module sqlite3, nous pouvons communiquer avec la base de données SQLite.
sqlite3.,connect ()
- En utilisant la méthode
connect()
, nous pouvons créer une connexion à la base de données SQLite. Cette méthode renvoie l’objet de connexion sqlite. - l’objet de connexion n’est pas thread-safe. le module sqlite3 ne permet pas de partager des connexions entre les threads. Si vous essayez toujours de le faire, vous obtiendrez une exception lors de l’exécution.
- la méthode
connect()
accepte divers arguments. Dans notre exemple, nous avons passé l’argument database name À connect.
cursor = sqliteConnection.,cursor ()
- En utilisant un objet de connexion, nous pouvons créer un objet cursor qui nous permet d’exécuter des commandes / requêtes sqlite via Python.
- nous pouvons créer autant de curseurs que nous le voulons à partir d’un seul objet de connexion. Comme l’objet connexion, cet objet curseur n’est pas non plus thread-safe. le module sqlite3 ne permet pas de partager des curseurs entre threads. Si vous essayez toujours de le faire, vous obtiendrez une exception lors de l’exécution.
Après cela, nous avons créé une requête SQLite pour obtenir la version de la base de données.
curseur.,execute ()
- En utilisant la méthode execute du curseur, nous pouvons exécuter une opération de base de données ou une requête à partir de Python. La méthode
cursor.execute()
prend une requête sqlite en paramètre et renvoie le jeu de résultats, c’est-à-dire rien d’autre qu’une ligne de base de données. - nous pouvons récupérer le résultat de la requête à partir du jeu de résultats en utilisant des méthodes de curseur telles que
- Dans notre exemple, nous exécutons une requête
SELECT version();
pour récupérer la version sqlite.,
try-except-finally block: nous avons placé tout notre code dans le bloc try-except pour détecter les exceptions et les erreurs de la base de données SQLite qui peuvent se produire pendant ce processus.
- En utilisant la classe
sqlite3.Error
du module sqlite3, nous pouvons gérer toute erreur et exception de base de données pouvant survenir lors de l’utilisation de SQLite à partir de Python. - En utilisant cette approche, nous pouvons rendre notre application robuste. La classe
sqlite3.Error
nous aide à comprendre l’erreur en détail. Il renvoie un message d’erreur et le code d’erreur.
curseur.close() et de connexion.,close()
- Il est toujours recommandé de fermer le curseur et l’objet de connexion une fois votre travail terminé pour éviter les problèmes de base de données.
créer une table SQLite à partir de Python
dans cette section, nous allons apprendre à créer une table dans la base de données SQLite à partir de Python en utilisant le module sqlite3. Créer une instruction de table est une requête DDL voyons comment l’exécuter à partir de Python.
dans cet exemple, nous créons une table « SqliteDb_developers” dans le « SQLite_Python.base de données « db ».,
étapes pour créer une table dans SQLite à partir de Python: –
- connectez-vous à SQLite en utilisant un
sqlite3.connect()
. J’ai expliqué le code de connexion sqlite au début de cet article. - préparez une requête create table.
- exécutez la requête en utilisant un
cursor.execute(query)
- à la fin, fermez la connexion à la base de données SQLite et l’objet curseur.,
Sortie:
Successfully Connected to SQLiteSQLite table created:the sqlite connection is closed
- utilisez la méthode
types de données SQLite et ses types Python correspondants
avant de poursuivre l’exécution des opérations SQLite Crud à partir de Python, comprenez d’abord le type de données SQLite et leurs types Python correspondants, ce qui nous aidera à stocker et lire les données de la table SQLite.
le moteur de base de données SQLite a plusieurs classes de stockage pour stocker les valeurs. Chaque valeur stockée dans une base de données SQLite possède l’une des classes de stockage ou l’un des types de données suivants.,
SQLite Types de données:
- NULL: – La valeur est une valeur NULL.
- entier: – pour stocker la valeur numérique. L’entier stocké dans 1, 2, 3, 4, 6, ou 8 octets selon l’ampleur du nombre.
- REAL: – la valeur est une valeur à virgule flottante, par exemple, la valeur 3.14 de PI
- TEXT: – la valeur est une chaîne de texte, valeur de texte stockée en utilisant L’encodage UTF-8, UTF-16BE ou UTF-16LE.
- BLOB: – la valeur est un blob de données, c’est-à-dire des données binaires. Il est utilisé pour stocker des images et des fichiers.
les types Python suivants convertis en SQLite sans aucun problème., Ainsi, lorsque vous modifiez ou lisez à partir de la table SQLite en effectuant des opérations CRUD, souvenez-vous de cette table.,
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 insérer, mettre à jour, Supprimer des opérations de Python.
maintenant, nous connaissons la table et ses détails de colonne, passons donc aux opérations crud. J’ai créé un tutoriel séparé sur chaque opération pour le couvrir en détail. Voyons chaque section.
- insérer des données dans la Table SQLite à partir de Python – dans cette section, nous allons apprendre à exécuter la commande INSERT à partir de python pour insérer des enregistrements dans la table sqlite.
- lire les données de la Table SQLite à partir de Python – dans cet article, nous allons apprendre à exécuter la requête SQLite SELECT à partir d’une application Python pour récupérer les lignes de la table., Aussi, je vais vous laisser savoir comment utiliser
fetchall()
,fetchmany()
etfetchone()
méthodes d’un curseur de classe pour aller chercher limité de lignes de la table afin d’améliorer les performances. - mettre à jour les données de la table SQLite à partir de Python – dans cette section, nous allons apprendre à exécuter la requête de mise à jour à partir de python pour modifier les enregistrements de la table sqlite.
- supprimer les données de la table sqlite de Python – dans cette section, nous allons apprendre à exécuter la requête DELETE de python pour supprimer les enregistrements de la table sqlite.,
exécuter un fichier SQL (scripts) à l’aide de la fonction executescript du curseur
les scripts SQLite sont pratiques pour la plupart des tâches quotidiennes. Le script SQLite est un ensemble de commandes SQL enregistrées sous forme de fichier (dans .format sql).
Un script SQLite contient une ou plusieurs opérations SQL que vous allez ensuite exécuter à partir de votre invite de ligne de commande chaque fois que nécessaire.
Voici les quelques scénarios courants où nous pouvons utiliser des scripts SQLite
- sauvegarder plusieurs bases de données à la fois.
- comparez le nombre de lignes dans les Tables de deux bases de données différentes avec le même schéma.,
- conservez toutes vos commandes SQL CREATE TABLE Dans un script de base de données. Vous pouvez donc créer un schéma de base de données sur n’importe quel serveur.
Vous pouvez exécuter votre script à partir de la ligne de commande sqlite en utilisant le .read command, comme ceci:
sqlite> .read mySQLiteScript.sql
pour cet exemple, j’ai créé un exemple de script SQLite qui créera deux tables. C’est le script que j’ai créé.
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);
voyons maintenant comment exécuter un script SQLite à partir de Python.
Sortie: tables SQLite créées en exécutant un script SQL à partir de Python.,
Successfully Connected to SQLiteSQLite script executed successfullysqlite connection is closed
Remarque: Après la connexion SQLite, On peut lire tout le contenu d’un SQLite fichier de script stocké sur le disque et copié dans un python variable de chaîne. Ensuite, nous avons appelé la méthodecursor.executscript(script)
pour exécuter toutes les instructions SQL en un seul appel.
insérer/récupérer des données numériques dans SQLite en utilisant Python
- Dans cette section, je vais vous faire savoir comment insérer ou enregistrer des informations numériques telles qu’un fichier, une image, une vidéo ou une chanson en tant que données BLOB dans la table SQLite à partir de python.,
- apprenez également comment lire un fichier, une image, une vidéo, une chanson ou toute autre donnée numérique stockée dans SQLite à l’aide de Python.
référez-vous à notre guide complet sur Python SQLite BLOB pour insérer et récupérer des fichiers et des images.
créer ou redéfinir des fonctions SQLite à L’aide de Python
le module Python sqlite3 nous offre la possibilité de créer et de redéfinir des fonctions SQL à partir de Python. J’ai créé un tutoriel séparé pour le couvrir en détail. Veuillez vous référer à comment créer et redéfinir des fonctions SQL à partir de Python.,
reportez-vous à notre guide complet sur la création ou la redéfinition de fonctions SQLite à partir de Python.
travailler avec les types SQLite date et timestamp en Python et vice-versa
parfois, nous devons insérer ou lire la valeur date ou DateTime à partir d’une table sqlite. Donc, si vous travaillez avec des valeurs de date ou d’horodatage, veuillez vous référer à notre tutoriel séparé sur l’utilisation des valeurs SQLite DateTime en Python.
Exceptions de base de données SQLite
Exception sqlite3.Avertissement
- Une sous-classe d’Exception. Et vous pouvez l’ignorer si vous voulez qu’il n’arrête pas l’exécution.,
Exception sqlite3.Error
- La classe de base des autres exceptions dans le module sqlite3. C’est une sous-classe d’Exception.
Exception sqlite3.DatabaseError
- Exception levée pour les erreurs liées à la base de données.
Exemples: Si vous essayez d’ouvrir un fichier en tant que base de données sqlite3 qui n’est PAS un fichier de base de données, vous obtiendrez sqlite3.DatabaseError: le fichier est chiffré ou n’est pas une base de données
Exception sqlite3.IntegrityError
- sous-classe D’une DatabaseError., Vous obtiendrez cette Exception lorsque l’intégrité relationnelle de la base de données est affectée, par exemple, une vérification de clé étrangère échoue.
Exception sqlite3.ProgrammingError
- c’est aussi une sous-classe de DatabaseError. Cette exception a été levée en raison d’erreurs de programmation, par exemple, la création d’une table avec le même qui existe déjà, erreur de syntaxe dans les requêtes SQL.
Exception sqlite3.OperationalError
- c’est aussi une sous-classe de DatabaseError. Cette erreur n’est pas sous notre contrôle. Cette exception a été levée pour les erreurs liées au fonctionnement de la base de données.,
- exemples: déconnexion accidentelle, arrêt du serveur, délai d’attente, problèmes de source de données. serveur en panne
Exception sqlite3.NotSupportedError
- Vous obtiendrez une exception levée lorsque l’API de base de données a été utilisée qui n’est pas prise en charge par la base de données.
- exemple: appel de la méthode rollback () sur une connexion qui ne prend pas en charge la transaction. Appel de commit après la création de la commande table.,
Il sera donc toujours conseillé d’écrire tout le code d’opération de votre base de données dans le bloc try afin que vous puissiez attraper des exceptions dans le bloc except le cas échéant et prendre les mesures correctives contre lui.
par exemple, essayons d’insérer des données dans une table qui n’existe pas dans la base de données SQLite et D’Imprimer la pile d’exceptions complète.,
sortie:
modifier le délai D’expiration de la connexion SQLite lors de la connexion depuis Python
Il peut s’agir du scénario où plusieurs connexions accèdent à une base de données SQLite, et l’un des processus effectuant une opération de modification de données sur la base de données, pour effectuer une connexion de modification Le paramètre timeout que nous spécifions lors de la connexion à la base de données détermine combien de temps la connexion doit attendre que le verrou disparaisse jusqu’à la levée d’une exception.,
la valeur par défaut du paramètre timeout est 5.0 (cinq secondes). Vous n’avez pas besoin de le spécifier lors de la connexion car il s’agit d’une valeur par défaut. c’est-à-dire que chaque fois que vous vous connectez à SQLite à partir de Python et que vous n’avez pas obtenu de réponse dans les 5 secondes, votre programme déclenchera une exception. Mais si vous rencontrez un problème de délai d’expiration de connexion et que vous souhaitez l’augmenter, vous pouvez le faire en utilisant un argument de délai d’expiration d’une fonction sqlite3.connect
.
voyons comment modifier la valeur du délai d’expiration lors de la connexion de SQLite à partir de Python.,
sortie:
Connected to SQLiteTotal rows are: (2,)The Sqlite connection is closed
identifier les changements totaux depuis l’ouverture de la connexion à la base de données SQLite
à des fins d’audit ou de statistiques si vous souhaitez trouver le nombre de lignes de base de données qui ont été modifiées, insérées ou supprimées depuis l’ouverture de la connexion à la base de données, vous pouvez utiliser la méthodeconnection.total_changes
d’un module Python sqlite3.
la méthode connection.total_changes
renvoie le nombre total de lignes de base de données qui ont été affectées. Voyons L’exemple Python pour trouver le total des modifications effectuées depuis l’ouverture de la connexion à la base de données.,
sortie:
Connected to SQLiteTotal Rows affected since the database connection was opened: 3sqlite connection is closed
effectuer une sauvegarde de la base de données SQLite depuis Python
le module Python sqlite3 fournit une fonction pour effectuer une sauvegarde de la base de données SQLite. En utilisant une méthode connection.backup()
, vous pouvez effectuer la sauvegarde de la base de données SQLite.
connection.backup(target, *, pages=0, progress=None, name="main", sleep=0.250)
Cette fonction effectue une sauvegarde de la base de données SQLite, et une copie sera écrite dans l’argument target, qui doit être une autre instance de connexion., Par défaut, ou lorsque les pages sont 0 ou un entier négatif, la base de données entière est copiée en une seule étape; sinon, la méthode effectue une copie en boucle jusqu’à pages à la fois.
l’argument name spécifie la base de données que vous souhaitez copier. L’argument sleep définit le nombre de secondes de sommeil entre les tentatives successives de sauvegarde des pages restantes d’une base de données. sommeil argument peut être spécifié sous la forme d’un entier ou d’une valeur à virgule flottante.
voyons l’exemple pour copier une base de données existante dans une autre.,
sortie:
Remarque:
- après la connexion à SQLite, nous avons ouvert les deux bases de données en utilisant deux connexions différentes.
- ensuite, nous avons exécuté une méthode
connection.backup()
en utilisant une première instance de connexion. En outre, nous avons spécifié le nombre de pages de base de données à copier à chaque itération.
Python SQLite Exercise Project
veuillez résoudre notre exercice de programmation de base de données Python pour maîtriser la programmation de base de données en Python.
Leave a Reply