Recherche de site Web

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 --version

La 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 --version

La 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 :

  1. Établir une connexion à une base de données SQLite
  2. Créer une nouvelle table
  3. Insérez les données dans la table
  4. Lisez les données dans le tableau
  5. Mettez à jour les données du tableau
  6. 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.