Exemples de SQLite en Python
La base de données est utilisée pour stocker les données de l'application dans un format structuré afin que les données puissent être facilement accessibles, modifiées et supprimées en exécutant l'instruction SQL appropriée. Python prend en charge de nombreux moteurs de base de données pour stocker les données. SQLite en est un. Python3 a un module sqlite3 pour se connecter à la base de données de l'SQLite et effectuer différents types d'opérations sur la base de données. Les méthodes de connexion à la base de données SQLite et de réalisation des opérations CRUD à l'aide du script Python sont présentées dans ce tutoriel.
Conditions préalables :
Vous devez compléter les tâches suivantes avant d'exécuter le code de ce tutoriel :
Installez Python 3+ sur le système s'il n'est pas déjà installé. Python3 est installé par défaut sur Ubuntu 20+. Exécutez la commande suivante pour vérifier la version installée de Python :
python3 --versionLa sortie suivante montre que la version 3.10.6 de Python est installée sur le système :
Installez sqlite3 dans le système s'il n'a pas été installé auparavant. Sqlite3 est installé par défaut sur Ubuntu 20+. Exécutez la commande suivante pour vérifier la version de Python installée :
sqlite3 --versionLa sortie suivante montre que la version 3.37.2 de SQLite est installée sur le système :
Opérations sur la base de données utilisant Python et SQLite
Les opérations de base sur la base de données utilisant la base de données SQLite et le script Python sont présentées dans ce didacticiel. La liste des tâches de base de données qui sont abordées dans ce didacticiel est mentionnée ci-dessous :
- Établir une connexion à une base de données SQLite
- Créer une nouvelle table
- Insérez les données dans la table
- Lisez les données dans le tableau
- Mettez à jour les données du tableau
- Supprimer les données de la table
Connexion à une base de données SQLite en utilisant Python
Vous pouvez créer un nouveau fichier de base de données SQLite ou utiliser un fichier de base de données SQLite existant pour travailler avec le script Python. Le module sqlite3 de Python est utilisé pour travailler avec la base de données SQLite à l'aide du script Python. Créez un fichier Python avec le script suivant qui montre la méthode de connexion à la base de données SQLite. Le nom de fichier de la base de données est pris de l'utilisateur. Si le nom de fichier de la base de données existe dans le répertoire courant, Python crée un objet de base de données valide pour travailler sur cette base de données. Si le nom de fichier de la base de données n'existe pas dans le répertoire courant, un nouveau fichier de base de données SQLite est créé dans le répertoire courant et établit la connexion avec la base de données. Un message de succès est imprimé après la création de l'objet de base de données valide et la connexion à la base de données est fermée à la fin du script.
#!/usr/bin/python
#Import the required module
import sqlite3
#Take the SQLite database filename from the user
filename = input ("Enter a sqlite filename:")
#Make connect with the existing database or after creating the database
db = sqlite3.connect(filename)
#Print the success message
print ("Database connected successfully.");
#Close the database connection
db.close();La sortie suivante montre que le “company.db ” est pris comme le nom du fichier de base de données et que la base de données est connectée avec succès car le message de succès, “Base de données connectée avec succès ”, est affiché.
Créer une table de base de données SQLite en utilisant Python
Si vous souhaitez créer une nouvelle table, il est nécessaire de supprimer la table de la base de données si la table existe déjà. Créez un fichier Python avec le script suivant qui montre la méthode de création d'une nouvelle table en supprimant la table existante et en vérifiant si la nouvelle table est créée ou non dans la base de données SQLite. Au début du script, la connexion à la base de données est établie avec le fichier de base de données "company.db". Si la table "vendor" existe dans la base de données, elle est supprimée par l'instruction DROP TABLE. Ensuite, la table "vendeur" est créée avec quatre champs et une clé primaire. L'objet curseur est créé pour vérifier si la nouvelle table est créée ou non. La table sqlite_master contient toutes les informations des tables de la base de données connectée. Donc, si la table "vendeur" est créée, la valeur retournée par la requête SELECT est supérieure à 0. La fonction count() est utilisée dans la requête SELECT pour vérifier l'existence de la table "vendeur".
#!/usr/bin/python
#Import the required module
import sqlite3
#Make connection with the existing database
db = sqlite3.connect('company.db');
#Define the table name
tablename = 'vendor'
#Drop the table if exists in the database
db.execute('DROP TABLE IF EXISTS ' + tablename)
#Define the query to create the table
query = '''CREATE TABLE vendor
(id INT PRIMARY KEY NOT NULL,
name CHAR(50) NOT NULL,
address TEXT NOT NULL,
email CHAR(50));'''
#Execute the query to create the table
db.execute(query)
#Declare cursor
cr = db.cursor()
#Execute the query to check whether the table is created or not
cr.execute('''SELECT count(name) FROM sqlite_master WHERE type='table' AND name='vendor' ''')
#Check the counter value
if cr.fetchone()[0]==1 :
#Print the success message
print ("%s table created successfully." %tablename)
#Close the database connection
db.close();La sortie suivante apparaît si la table des fournisseurs est créée dans la base de données :
Insérer les données dans la table SQLite en utilisant Python
Un ou plusieurs enregistrements peuvent être insérés dans la table de la base de données en utilisant une ou plusieurs requêtes INSERT. Créez un fichier Python avec le script suivant qui insère quatre enregistrements dans la table "vendor" en utilisant une seule requête INSERT. La méthode connect() est utilisée pour se connecter au fichier de base de données "company.db". La méthode execute() est utilisée pour exécuter la requête INSERT INTO pour insérer les enregistrements dans la table "vendor". Ensuite, l'objet curseur est créé pour vérifier si les enregistrements ont été insérés avec succès ou non. La requête SELECT est utilisée pour compter le nombre total d'enregistrements de la table "vendor" qui contiennent les valeurs "id" insérées. Si les enregistrements sont insérés avec succès, le nombre total de lignes renvoyées par la requête SELECT est supérieur à 0 et un message de succès est affiché. La méthode commit() est utilisée dans le script pour confirmer la tâche d'insertion.
#!/usr/bin/python
#Import the required module
import sqlite3
#Make connection with the existing database
db = sqlite3.connect('company.db');
#Define the query to insert records into the table
query = '''INSERT INTO vendor (id, name, address, email)
VALUES
(1, 'Nahar Enterprise', '56, Motijeel, dhaka', '[email '),
(2, 'Rahat Electronics', '105, Mogbazar, dhaka', '[email '),
(3, 'Vision Emporium', '45/A, Dhanmondi, dhaka', '[email '),
(4, 'Walton Plaza', '78, Jigatala, dhaka', '[email ');'''
#Execute the query to insert data
db.execute(query)
#Declare cursor
cr = db.cursor()
#Execute the query to check the inserted number of rows
cr.execute('SELECT count(*) FROM vendor WHERE id between 1 and 4;')
#Count the total number of rows of the table
rows = cr.fetchone()[0];
#Check the counter value
if rows > 0 :
#Print the success message
print ("%s rows inserted into the table." %rows)
#Confirm the insertion
db.commit()
#Close the database connection
db.close();La sortie suivante montre que les enregistrements ont été insérés avec succès :
Lire les données de la table SQLite en utilisant Python
Toutes ou certaines données peuvent être récupérées à partir de la table de la base de données SQLite en utilisant la requête SELECT et cela fait partie des principales opérations CRUD. Créez un fichier Python avec le script suivant qui lit tous les enregistrements et les enregistrements particuliers de la table "vendeur" où la valeur du champ nom correspond partiellement à la valeur entrée par l'utilisateur. La méthode connect() est utilisée pour se connecter au fichier de base de données "company.db". L'objet curseur est créé pour lire l'ensemble de résultats retourné par la requête SELECT et la méthode execute() est utilisée pour exécuter la requête SELECT. La méthode fetchall() est utilisée pour lire l'ensemble de résultats de la requête dans un tableau. La boucle "pour" est utilisée pour lire et imprimer les valeurs de l'ensemble de résultats retourné par les deux requêtes SELECT.
#!/usr/bin/python
#Import the required module
import sqlite3
#Make connection with the existing database
db = sqlite3.connect('company.db')
#Define the query to read all records from the vendor table
query = 'SELECT * FROM VENDOR;'
#Declare cursor
cr = db.cursor()
#Execute the query to read all records
cr.execute(query)
#Store all retrieved data into the array
rows = cr.fetchall()
print ("All records of vendor table:")
#Iterate the array values and print
for row in rows:
print(row)
name = input("Enter the vendor name:");
#Define the query to read all records from the vendor table
query = 'SELECT * FROM vendor WHERE name LIKE "%' + name + '%";'
#Execute the query to read specific records
cr.execute(query)
#Store all retrieved data in the array
rows = cr.fetchall();
print ("Specific records of vendor table:")
#Iterate the array values and print
for row in rows:
print(row)
Close the connection
db.close()La valeur de chaîne « Walton » est prise comme valeur d'entrée de l'utilisateur. La sortie suivante montre que tous les enregistrements de la table « vendor » sont imprimés lors de l'exécution de la première requête SELECT et les enregistrements de la table « vendor » contenant le mot « Walton » sont imprimés lors de l'exécution de la deuxième requête SELECT :
Mettre à jour les données de la table SQLite en utilisant Python
Mettre à jour les données de la table de base de données SQLite est une partie importante de l'opération CRUD. Tous les enregistrements peuvent être mis à jour ou des enregistrements particuliers peuvent être mis à jour dans la table en fonction de la condition. Créez un fichier Python avec le script suivant qui met à jour le champ email de la table "vendor" où la valeur "id" correspond à la valeur d'entrée fournie par l'utilisateur. La méthode connect() est utilisée pour se connecter au fichier de base de données "company.db". La méthode execute() est utilisée pour exécuter la requête UPDATE. L'objet curseur est créé pour lire l'ensemble des résultats retournés par la requête SELECT après la mise à jour de l'enregistrement de la table. La méthode fetchall() est utilisée pour lire l'ensemble des résultats de la requête SELECT dans un tableau, comme dans l'exemple précédent. La boucle "for" est utilisée pour lire et imprimer les valeurs de l'ensemble des résultats retournés par la requête SELECT. La méthode commit() est utilisée pour confirmer l'opération de mise à jour de la base de données.
#!/usr/bin/python
#Import the required module
import sqlite3
#Make connection with the existing database
db = sqlite3.connect('company.db')
id = input("Enter the vendor id:")
#Define the query to update the specific record of the vendor table
query = 'UPDATE vendor SET email = "[email " WHERE id = ' + id + ';'
db.execute(query)
#Confirm the update task
db.commit()
#Define the query to read all records from the vendor table
query = 'SELECT * FROM VENDOR;'
#Declare cursor
cr = db.cursor()
#Execute the query to read all records
cr.execute(query)
#Store all retrieved data in the array
rows = cr.fetchall()
print ("All records of the vendor table after update:")
#Iterate the array values and print
for row in rows:
print(row)
Close the connection
db.close()Le nombre trois (3) est pris comme valeur "id" de l'utilisateur. La valeur du champ email est "[email " avant l'exécution du script. La sortie suivante montre que la valeur du champ email de la table "vendor" a été changée en "[email " qui contient la valeur "id" de 3 après l'exécution du script:
Supprimer les données de la table SQLite en utilisant Python
La suppression des données de la base de données est l'une des principales parties de l'opération CRUD. Tous les enregistrements peuvent être supprimés de la table ou les enregistrements particuliers peuvent être supprimés en fonction de la condition. Créez un fichier Python avec le script suivant qui supprime l'enregistrement de la table "vendor" où la valeur "id" correspond à la valeur saisie par l'utilisateur. La méthode connect() est utilisée pour se connecter au fichier de base de données "company.db". La méthode execute() est utilisée pour exécuter la requête DELETE. La première requête SELECT est utilisée ici pour vérifier si un enregistrement existe ou non avec la valeur "id" saisie par l'utilisateur. La deuxième requête SELECT est utilisée pour imprimer tous les enregistrements après la suppression de l'enregistrement. L'objet curseur est créé pour lire l'ensemble de résultats renvoyé par la requête SELECT de la table "vendor". La méthode fetchall() est utilisée pour lire l'ensemble de résultats de la requête SELECT dans un tableau, comme dans l'exemple précédent. La boucle "for" est utilisée pour lire et imprimer les valeurs de l'ensemble de résultats renvoyé par la requête SELECT. La méthode commit() est utilisée pour confirmer l'opération de suppression de la base de données. Si la commande commit() n'est pas utilisée pour la requête INSERT, UPDATE et DELETE, la base de données d'origine ne sera pas modifiée. Après avoir exécuté la méthode commit(), vous pouvez appeler la méthode rollback() pour revenir à la dernière modification qui n'a pas été montrée dans ce tutoriel.
#!/usr/bin/python
#Import the required module
import sqlite3
#Make connection with the existing database
db = sqlite3.connect('company.db')
id = input("Enter the vendor id to delete:")
#Declare cursor
cr = db.cursor()
#Execute the query to check the inserted number of rows
cr.execute('SELECT count(*) FROM vendor WHERE id = ' + id + ';')
#Count the total number of rows of the result set
rows = cr.fetchone()[0];
#Check the counter value
if rows == 0 :
#Print the success message
print ("No vendor exists of this id")
else:
#Define the query to delete the specific record of the vendor table
query = 'DELETE FROM vendor WHERE id = ' + id + ';'
db.execute(query)
#Confirm the delete task
db.commit()
#Define the query to read all records from the vendor table
query = 'SELECT * FROM VENDOR;'
#Execute the query to read all records
cr.execute(query)
#Store all retrieved data in the array
rows = cr.fetchall()
print ("All records of the vendor table after delete:")
#Iterate the array values and print
for row in rows:
print(row)
Close the connection
db.close()La sortie suivante montre que 4 est pris comme la valeur « id » de l'utilisateur et que le 4ème enregistrement de la table « vendeur » est supprimé après l'exécution du script :
Conclusion
Différents types d'applications peuvent être facilement développés avec le langage Python. Python prend en charge à la fois la programmation structurée et la programmation orientée objet. S'il est nécessaire de développer une application Python avec une base de données très légère, il est préférable d'utiliser l'outil de base de données SQLite. Les méthodes de création de tables, d'insertion de données dans la table, de lecture des données de la table, de mise à jour des données de la table et de suppression des données de la table sont présentées dans ce tutoriel à l'aide de plusieurs scripts Python. Les nouveaux utilisateurs de SQLite seront capables de travailler avec la base de données SQLite en utilisant le script Python après avoir bien lu ce tutoriel.







