Welcome to Our Website

Tutoriel Python SQLite3 (programmation de base de données)

dans ce tutoriel, nous allons travailler avec la base de données SQLite3 par programmation en utilisant Python.

SQLite en général est une base de données sans serveur que vous pouvez utiliser dans presque tous les langages de programmation, y compris Python. Sans serveur, il n’est pas nécessaire d’installer un serveur séparé pour fonctionner avec SQLite afin que vous puissiez vous connecter directement à la base de données.

SQLite est une base de données légère qui peut fournir un système de gestion de base de données relationnelle avec zéro configuration car il n’est pas nécessaire de configurer ou de configurer quoi que ce soit pour l’utiliser.,

nous utiliserons SQLite version 3 ou SQLite3, alors commençons.

table des matières

créer une connexion

pour utiliser sqlite3 en Python, tout d’abord, vous devrez importer le module sqlite3 puis créer un objet de connexion qui nous connectera à la base de données et nous permettra d’exécuter les instructions SQL.

Vous pouvez créer un objet de connexion en utilisant la fonction connect ():

import sqlite3con = sqlite3.connect('mydatabase.db')

qui créera un nouveau fichier avec le nom ‘mydatabase.DB’.,

SQLite3 Curseur

Pour exécuter SQLite déclarations en Python, vous avez besoin d’un objet curseur. Vous pouvez le créer en utilisant la méthode cursor ().

le curseur SQLite3 est une méthode de l’objet connection. Pour exécuter les instructions SQLite3, vous devez d’abord établir une connexion, puis créer un objet du curseur en utilisant l’objet connection comme suit:

con = sqlite3.connect('mydatabase.db')cursorObj = con.cursor()

maintenant, nous pouvons utiliser l’objet cursor pour appeler la méthode execute() pour exécuter toutes les requêtes SQL.,

créer une base de données

lorsque vous créez une connexion avec SQLite, cela créera automatiquement un fichier de base de données s’il n’existe pas déjà. Ce fichier de base de données est créé sur disque; nous pouvons également créer une base de données en RAM en utilisant :memory: avec la fonction connect. Cette base de données est appelée base de données en mémoire.

considérons le code ci-dessous dans lequel nous avons créé une base de données avec un try, except et enfin des blocs pour gérer les exceptions:

tout d’abord, nous importons le module sqlite3, puis nous définissons une fonction sql_connection., Dans cette fonction, nous avons un bloc try où la fonction connect() renvoie un objet de connexion après avoir établi la connexion.

ensuite, nous avons except block, qui en cas d’exception imprime le message d’erreur. S’il n’y a pas d’erreurs, la connexion sera établie et affichera un message comme suit.

Après cela, nous avons fermé notre lien dans le bloc finally. La fermeture d’une connexion est facultative, mais c’est une bonne pratique de programmation, vous libérez donc la mémoire de toutes les ressources inutilisées.,

Create Table

pour créer une table dans SQLite3, vous pouvez utiliser la requête Create Table Dans la méthode execute (). Considérez les étapes suivantes:

  1. Créer un objet de connexion.
  2. à partir de l’objet connexion, créez un objet curseur.
  3. En utilisant l’objet cursor, appelez la méthode execute avec create table query comme paramètre.,

créons des employés avec les attributs suivants:

employees (id, name, salary, department, position, hireDate)

le code sera comme ceci:

dans le code ci-dessus, nous avons défini deux méthodes, la première établit une connexion et la seconde méthode crée un objet curseur pour exécuter l’instruction create table.

la méthode commit() enregistre toutes les modifications que nous apportons. En fin de compte, les deux méthodes sont appelées.

Pour vérifier si notre table est créée, vous pouvez utiliser la DB navigateur pour SQLite pour afficher votre table. Ouvrez votre mydatabase.,fichier de base de données avec le programme, et vous devriez voir votre table:

Insérer dans la Table

Pour insérer des données dans une table, nous utilisons l’instruction INSERT INTO. Considérez la ligne de code suivante:

cursorObj.execute("INSERT INTO employees VALUES(1, 'John', 700, 'HR', 'Manager', '2017-01-04')")con.commit()

pour vérifier si les données sont insérées, cliquez sur Parcourir les données dans le navigateur DB:

Nous pouvons également passer des valeurs / arguments à une instruction INSERT dans la méthode execute (). Vous pouvez utiliser le point d’interrogation (?) en tant qu’espace réservé pour chaque valeur., La syntaxe de L’insertion sera la suivante:

cursorObj.execute('''INSERT INTO employees(id, name, salary, department, position, hireDate) VALUES(?, ?, ?, ?, ?, ?)''', entities)

où les entités contiennent les valeurs pour les espaces réservés comme suit:

entities = (2, 'Andrew', 800, 'IT', 'Tech', '2018-02-06')

le code entier est le suivant:

update table

pour mettre à jour la table, créez simplement une connexion, puis créez un objet curseur à L’aide de la connexion et enfin utilisez l’instruction UPDATE dans la méthode Execute ().

Supposons que nous voulons mettre à jour le nom de l’employé dont l’id est égal à 2., Pour la mise à jour, nous utiliserons la déclaration de mise à jour et pour l’employé dont l’id est égal à 2. Nous utiliserons la clause WHERE comme condition pour sélectionner cet employé.

Considérons le code suivant:

Cela va changer le nom de Andrew Rogers comme suit:

instruction Select

Vous pouvez utiliser l’instruction select pour sélectionner des données dans une table particulière. Si vous souhaitez sélectionner toutes les colonnes des données d’une table, vous pouvez utiliser l’astérisque (*)., La syntaxe est comme suit:

select * from table_name

SQLite3, l’instruction SELECT est exécutée dans la méthode execute de l’objet curseur., Par exemple, sélectionnez toutes les colonnes de la table, exécutez le code suivant:

cursorObj.execute('SELECT * FROM employees ')

Si vous souhaitez sélectionner quelques colonnes d’une table, puis spécifiez les colonnes comme suit:

select column1, column2 from tables_name

Par exemple,

cursorObj.execute('SELECT id, name FROM employees')

L’instruction select sélectionne les données requises à partir de la table de base de données, et si vous souhaitez récupérer les données sélectionnées, la méthode fetchall() de l’objet curseur est utilisé. Nous allons le démontrer dans la section suivante.,

Extraction de toutes les données

Pour récupérer les données depuis une base de données, nous allons exécuter l’instruction SELECT et ensuite utiliser la méthode fetchall() de l’objet curseur pour stocker les valeurs dans une variable. Après cela, nous allons parcourir la variable et imprimer toutes les valeurs.

Le code sera comme ceci:

Le code ci-dessus permet d’imprimer les enregistrements dans notre base de données comme suit:

Vous pouvez également utiliser le fetchall() dans une ligne comme suit:


Si vous voulez extraire les données spécifiques à partir de la base de données, vous pouvez utiliser la clause where., Par exemple, nous voulons récupérer les identifiants et les noms des employés dont le salaire est supérieur à 800. Pour cela, remplissons notre table avec plus de lignes, puis exécutons notre requête.

Vous pouvez utiliser l’instruction insert pour remplir les données, ou vous pouvez les saisir manuellement dans la base de données programme de navigateur.

Maintenant, pour récupérer l’id et les noms de ceux qui ont un salaire supérieur à 800:

Dans l’instruction SELECT ci-dessus, au lieu d’utiliser l’astérisque (*), nous avons précisé les attributs id et name., Le résultat sera comme suit:

SQLite3 rowcount

Le SQLite3 rowcount est utilisé pour renvoyer le nombre de lignes affectées ou sélectionné par la dernière requête SQL exécutée.

lorsque nous utilisons rowcount avec L’instruction SELECT, -1 sera renvoyé car le nombre de lignes sélectionnées est inconnu jusqu’à ce qu’elles soient toutes récupérées., Prenons l’exemple ci-dessous:

print(cursorObj.execute('SELECT * FROM employees').rowcount)

par conséquent, pour obtenir le nombre de lignes, vous devez récupérer toutes les données, et ensuite obtenir la longueur de la suite:

rows = cursorObj.fetchall()print len (rows)

Lorsque vous utilisez l’instruction DELETE sans aucune condition (clause where), qui va supprimer toutes les lignes dans la table, et il sera de retour le nombre total de lignes supprimées dans rowcount.

print(cursorObj.execute('DELETE FROM employees').rowcount)

Si aucune ligne n’est supprimé, il sera de retour à zéro.,

liste des tables

pour lister toutes les tables d’une base de données SQLite3, vous devez interroger la table sqlite_master, puis utiliser fetchall() pour récupérer les résultats de L’instruction SELECT.

le sqlite_master est la table principale dans SQLite3, qui stocke toutes les tables.

cela listera toutes les tables comme suit:

vérifiez si une table existe ou non

lors de la création d’une table, nous devons nous assurer que la table n’existe pas déjà. De même, lors de la suppression/ suppression d’une table, la table doit exister.,s” avec l’instruction DROP TABLE comme suit:

drop table if exists table_name

Par exemple,

cursorObj.execute('drop table if exists projects')

Nous pouvons également vérifier si la table que nous voulons accès existe ou non en exécutant la requête suivante:

cursorObj.execute('SELECT name from sqlite_master WHERE type = "table" AND name = "employees"')print(cursorObj.fetchall())

Si les employés de la table existe, il sera de retour de son nom comme suit:

Si le nom de la table que nous avons spécifié n’existe pas, un tableau vide est retournée:

table

Vous pouvez supprimer/supprimer une table à l’aide de l’instruction DROP., La syntaxe de l’instruction DROP est comme suit:

drop table table_name

Pour supprimer une table, la table doit exister dans la base de données. Par conséquent, il est recommandé d’utiliser « s’il existe” avec la chute de la déclaration comme suit:

drop table if exists table_name

Par exemple,

SQLite3 exceptions

les Exceptions sont les erreurs d’exécution. En programmation Python, toutes les exceptions sont les instances de la classe dérivée de BaseException.,

dans SQLite3, nous avons les principales exceptions Python suivantes:

DatabaseError

toute erreur liée à la base de données déclenche L’erreur DatabaseError.

IntegrityError

IntegrityError est une sous-classe de DatabaseError et est déclenchée en cas de problème d’intégrité des données. Par exemple, les données étrangères ne sont pas mises à jour dans toutes les tables, ce qui entraîne une incohérence des données.

ProgrammingError

L’exception ProgrammingError se déclenche lorsqu’il y a des erreurs de syntaxe ou que la table n’est pas trouvée ou que la fonction est appelée avec le mauvais nombre de paramètres / arguments.,

OperationalError

cette exception est déclenchée lorsque les opérations de base de données échouent, par exemple une déconnexion inhabituelle. Ce n’est pas la faute des programmeurs.

NotSupportedError

lorsque vous utilisez des méthodes qui ne sont pas définies ou prises en charge par la base de données, cela déclenchera L’exception NotSupportedError.

sqlite3 Executemany (BULK insert)

Vous pouvez utiliser l’instruction executemany pour insérer plusieurs lignes à la fois.

considérez le code suivant:

ici, nous avons créé une table avec deux colonnes, et « data” a quatre valeurs pour chaque colonne., Nous passons la variable à la méthode executemany () avec la requête.

Notez que nous avons utilisé l’espace réservé à transmettre les valeurs.

le code ci-dessus générera le résultat suivant:

fermer la connexion

Une fois que vous avez terminé avec votre base de données, il est recommandé de fermer la connexion. Vous pouvez fermer la connexion en utilisant la méthode close ().,

pour fermer une connexion, utilisez l’objet connection et appelez la méthode close() comme suit:

con = sqlite3.connect('mydatabase.db')#program statementscon.close()

sqlite3 datetime

dans la base de données Python sqlite3, nous pouvons facilement stocker la date ou l’heure en important le module datatime. Les formats suivants sont les formats les plus courants que vous pouvez utiliser pour datetime:

YYYY-MM-DDYYYY-MM-DD HH:MMYYYY-MM-DD HH:MM:SSYYYY-MM-DD HH:MM:SS.SSSHH:MMHH:MM:SSHH:MM:SS.SSSnow

considérez le code suivant:

dans ce code, nous avons d’abord importé le module datetime et nous avons créé une table nommée assignations avec trois colonnes.

Le type de données de la troisième colonne est une date., Pour insérer la date dans la colonne, nous avons utilisé datetime.date. De même, nous pouvons utiliser datetime.le temps de manipuler le temps.

le code ci-dessus générera la sortie suivante:

La grande flexibilité et la mobilité de la base de données SQLite3 en font le premier choix pour tout développeur de l’utiliser et de l’expédier avec n’importe quel produit avec lequel il travaille.

Vous pouvez utiliser les bases de données SQLite3 dans les projets Windows, Linux, Mac OS, Android et iOS en raison de leur portabilité impressionnante. Donc, vous expédiez un fichier avec votre projet et c’est tout.

j’espère que vous trouverez le tutoriel utile., Garder de revenir.

je vous Remercie.

Ayesha Tariq est une pile complète de logiciels ingénieur, développeur web, et blockchain développeur passionné. Elle a une connaissance approfondie de C / C++, Java, Kotlin, Python et divers autres.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *