Programmation

Principes de base de l'utilisation de la base de données SQLite en Python

Principes de base de l'utilisation de la base de données SQLite en Python

Une base de données est l'un des fichiers les plus utiles et les plus populaires pour stocker des données ; ils peuvent être utilisés pour stocker tout type de données, y compris du texte, des nombres, des images, des données binaires, des fichiers, etc. SQLite est un système de gestion de base de données relationnelle basé sur le langage SQL. C'est une bibliothèque C, et elle fournit une API pour travailler avec d'autres langages de programmation, y compris Python. Il ne nécessite pas qu'un processus serveur distinct soit exécuté selon les besoins dans les grands moteurs de base de données comme MySQL et Postgresql.

Il est rapide et léger, et l'intégralité de la base de données est stockée dans un seul fichier disque, ce qui la rend portable comme CSV ou d'autres fichiers de stockage de données. De nombreuses applications utilisent SQLite pour le stockage interne des données, principalement dans des environnements tels que les appareils mobiles ou les petites applications.

Base de données SQLite pour Python

Plongeons profondément dans SQLite avec le langage de programmation python. Dans ce tutoriel, nous allons apprendre les avantages de l'utilisation de SQLite, les bases du module python sqlite3, la création d'une table dans une base de données, l'insertion de données dans la table, l'interrogation des données de la table et la mise à jour des données de la table.

Avantages de l'utilisation de SQLite

Les principaux avantages de l'utilisation de SQLite sont :

SQLite est également utilisé dans Google Chrome pour stocker les cookies, les données utilisateur et d'autres données importantes, y compris les mots de passe utilisateur. Le système d'exploitation Android utilise également SQLite comme moteur de base de données principal pour stocker les données.

Module Python SQLite3

Pour utiliser SQLite, nous avons besoin que Python soit installé dans notre système. Si vous n'avez pas déjà installé Python sur votre système, vous pouvez vous référer à notre guide étape par étape pour installer Python sous Linux. Nous pourrions utiliser SQLite en Python en utilisant le sqlite3 module disponible dans la bibliothèque standard de Python. Gerhard Häring a écrit le module sqlite3 ; il fournit une interface SQL conforme à la DB-API 2.0. Il est préinstallé avec la bibliothèque standard Python, nous n'avons donc pas à nous soucier de toute autre installation.

Création d'une connexion à une base de données

La première étape lorsque vous travaillez avec SQLite en Python consiste à établir une connexion avec une base de données. Nous pouvons le faire en utilisant la méthode connect() de sqlite3 pour établir une connexion. Regardez le code suivant pour un exemple. Vous pouvez simplement copier le code dans un IDE ou un éditeur de texte et l'exécuter. Si vous avez un problème avec le choix de l'IDE pour Python, vous pouvez vous référer à notre guide sur la comparaison du meilleur IDE python. Il est recommandé de réécrire le code à nouveau dans votre IDE, et si vous souhaitez copier le code, merci de vérifier la syntaxe avec le code présent ici.

# import des modules requis import sqlite3 # configuration de la connexion avec la base de données conn = sqlite3.connecter("exemple.db") print("Connexion réussie à la base de données") # fermeture de la connexion conn.Fermer()

Le programme ci-dessus créera une connexion avec le fichier de base de données SQLite « exemple.db.” Il donnera la sortie suivante dans le terminal.

Voyons ce qui se passe dans le code ci-dessus. Dans la première ligne, nous avons importé le module sqlite3, qui nous aidera à travailler avec les bases de données SQLite en Python.

Dans la deuxième ligne, nous créons une connexion avec un fichier de base de données SQLite nommé "sample.db" en utilisant le relier() une fonction. La fonction connect() accepte le chemin d'accès au fichier de base de données comme argument. Si le fichier n'existe pas dans le chemin donné, il créera lui-même un nouveau fichier de base de données avec le nom donné dans ce chemin. La fonction connect() retournera un objet de base de données dans notre programme ; nous stockons l'objet retourné dans une variable nommée Connecticut.

La troisième ligne de notre programme est une simple imprimer instruction pour afficher un message sur une connexion réussie. La dernière ligne du programme rompt la connexion avec la base de données en utilisant le Fermer() fonction de l'objet de connexion.

Dans l'exemple précédent, nous avons créé la base de données sur le disque, mais nous pouvons également créer une base de données dans la mémoire RAM principale. La création d'une base de données dans la RAM rend l'exécution de la base de données plus rapide que d'habitude. Néanmoins, la base de données sera créée temporairement et, lorsque l'exécution du programme s'arrêtera, elle supprimera la base de données de la mémoire. Nous pouvons créer une base de données dans la mémoire en fournissant le nom particulier :memory: comme argument au relier() une fonction. Voir le programme ci-dessous à titre d'illustration.

importer sqlite3 conn = sqlite3.connect(":memory:") print("\n [+] La base de données a été créée avec succès dans la mémoire") conn.Fermer()

Le programme ci-dessus créera une base de données dans la RAM, et nous pouvons l'utiliser pour effectuer presque toutes les tâches que nous pouvons faire avec les bases de données créées sur le disque. Cette méthode est utile lors de la création d'une base de données virtuelle temporaire pour une raison quelconque.

Curseur SQLite3

UNEle curseur l'objet est notre interface avec la base de données, qui permet d'exécuter n'importe quelrequête SQL sur la base de données. Pour exécuter des scripts SQL à l'aide de sqlite3, nous devons créer un objet curseur. Pour créer un objet curseur, nous devons utiliser le le curseur() méthode de la lien objet. Nous pouvons créer un objet curseur de notre base de données en utilisant le code suivant.

# import des modules requis import sqlite3 # configuration de la connexion à la base de données conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") cur.close() # fermeture de la connexion conn.Fermer()

Lorsque le programme est exécuté, la sortie sera vue comme indiqué dans l'image ci-dessous.

Voyons comment fonctionne le code ci-dessus. Dans le code ci-dessus, le premier, le deuxième, le troisième établit une connexion avec la base de données, comme indiqué précédemment. Dans la quatrième ligne, nous avons utilisé le le curseur() méthode de l'objet de connexion pour créer un objet curseur et stocker l'objet curseur renvoyé dans une variable nommée "cur". La cinquième ligne est un général imprimer() déclaration. Dans la sixième ligne, nous avons détruit l'objet curseur de la mémoire en utilisant le Fermer() méthode de l'objet curseur.

Types de données SQLite

Avant d'aller plus loin, comprenons d'abord les types de données SQLite. Le moteur de base de données SQLite dispose de plusieurs classes de stockage pour stocker de nombreux types de données, notamment du texte, des données binaires, des entiers, etc. Chaque valeur a l'un des types de données suivants.

Types de données SQLite :

Comparaison des types de données SQLite et Python

Il y aura plusieurs fois où nous aurons besoin d'utiliser des types de données python pour stocker des données SQL et effectuer certaines activités. Pour une telle chose à faire, nous devons savoir quels types de données SQL se rapportent à quels types de données python.

Les types Python suivants sont quelque peu similaires aux types de données SQLite :

Type Python Type SQLite
Rien NUL
entier ENTIER
flotter RÉEL
str TEXTE
octets GOUTTE

Créer une table avec SQLite

Pour créer une table à l'aide de SQLite, nous devons utiliser le CRÉER UN TABLEAU instruction de SQL dans le exécuter() méthode de l'objet curseur. La syntaxe de base de l'instruction CREATE TABLE en SQL est illustrée ci-dessous :

CREATE TABLE nom_table( nom_colonne contrainte type_données,… nom_colonne contrainte type_données );

Pour utiliser l'instruction SQLite ci-dessus en Python, nous devons exécuter l'exemple de programme ci-dessous. Il va créer une table nommée employee dans notre base de données.

importer sqlite3 conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") table = cur.execute(""" CREATE TABLE employee( id INT PRIMARY KEY, name CHAR(25), salaire CHAR(25), join_date DATE ); """) print("\n [+] La table a été créée avec succès ") curé.close() conn.Fermer()

Dans le programme ci-dessus, nous avons créé un employé table avec les attributs identifiant, nom, salaire, et date d'inscription. Cette table peut maintenant être utilisée pour stocker des données ou interroger des données selon les besoins. Vous verrez la sortie suivante dans le terminal.

Dans le code ci-dessus, nous avons utilisé le exécuter() méthode de l'objet curseur pour exécuter la commande SQL pour créer une table avec les colonnes données.

Insertion de données dans un tableau

Nous avons créé une table dans notre base de données SQLite. Maintenant, insérons-y des données en utilisant SQL. La syntaxe de base de l'instruction INSERT de SQL est :

INSERT INTO nom_table (nom_colonnes_1, nom_colonnes_2,… ) VALUES (données_colonnes_1, données_colonnes_1,… )

Dans la syntaxe ci-dessus, le nom de la table est le nom de la table dans laquelle nous voulons insérer nos données. le nom_colonne_1, nom_colonne_2, sont le nom des colonnes présentes dans le tableau. le colonne_données_1, colonne_données_2,… sont les données que nous voulons insérer dans les colonnes données.

Voyons une démonstration pratique pour insérer des données dans une table. Nous allons ajouter des données dans notre table nommée employé en utilisant SQLite et Python. Exécutez le code ci-dessous pour insérer des données dans le tableau.

importer sqlite3 conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") cur.execute("INSÉRER DANS L'employé (id, nom, salaire, date d'adhésion) VALEURS (1001, 'David', 50000, '1-08-2019')") cur.execute("INSÉRER DANS L'employé (id, nom, salaire, date d'adhésion) VALEURS (1002, 'Sam', 80000, '3-09-2020')") cur.execute("INSÉRER DANS L'employé (ID, nom, salaire, date d'adhésion) VALEURS (1003, 'Roshan', 90000, '8-08-2020')") cur.execute("INSÉRER DANS L'employé (id, nom, salaire, date d'adhésion) VALEURS (1004, 'Kishan', 100000, '9-09-2020')") cur.execute("INSÉRER DANS L'employé (id, nom, salaire, date d'adhésion) VALEURS (1005, 'Ankit', 111000, '10-05-2019')") print("\n [+] Les données ont été insérées avec succès " ) cur.close() conn.commit() conn.Fermer()

Le code ci-dessus insérera des données dans le employé tableau que nous avons créé plus tôt. Voyons ce qui se passe dans le code. Les cinq premières lignes sont utilisées pour créer une connexion avec la base de données et configurer le curseur. Dans les lignes de six à dix, nous devons utiliser la commande INSERT de SQL pour insérer des données dans la table des employés. Nous devons utiliser le nom des colonnes de la table des employés dans la première parenthèse et les données des colonnes dans la deuxième parenthèse. Nous avons juste besoin d'utiliser le s'engager() méthode de l'objet de connexion avant de se déconnecter avec la base de données sinon les modifications que nous avons apportées ne seront pas enregistrées dans la base de données.

Interrogation des données d'une table

Nous avons appris à insérer des données dans une base de données SQLite, mais nous devons également interroger les données de la base de données pour être utilisées par notre programme ou nos utilisateurs. Pour interroger des données, nous pouvons utiliser l'instruction SELECT du SQL sous la méthode execute(). La syntaxe de base de l'instruction SELECT est indiquée ci-dessous.

SELECT nom_colonnes FROM nom_table

le noms_colonnes dans la syntaxe sera le nom des colonnes que nous devons interroger. Ces colonnes doivent être présentes dans le tableau dont le nom est donné à la place de nom de la table. Voyons maintenant comment nous pourrions utiliser cette syntaxe pour interroger les données de notre table des employés. Exécutez simplement le code suivant pour voir une illustration.

importer sqlite3 conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") cur.execute("SELECT id,nom FROM employé") table = cur.fetchall() pour i dans le tableau : print(i) cur.close() conn.commit() conn.Fermer()

La sortie fournie par le programme ci-dessus est indiquée ci-dessous.

Le programme ci-dessus interrogera la table des employés pour les colonnes identifiant et Nom. Nous pouvons collecter les données qui ont été retournées en utilisant le chercher () méthode de l'objet curseur. Les données renvoyées sont une liste python contenant les lignes que nous avons interrogées. Pour afficher des lignes individuelles, nous devons utiliser la boucle Python for pour parcourir la liste ; vous pouvez en savoir plus sur la boucle Python for ici. Voyons maintenant quelques choses utiles que nous pouvons effectuer avec l'instruction SELECT.

Récupérer toutes les données d'un tableau

Parfois, il est nécessaire de récupérer tous les enregistrements d'une table de base de données. Pour obtenir tous les enregistrements à l'aide de l'instruction SELECT de SQL, nous devons suivre la syntaxe de base donnée ci-dessous :

SELECT * FROM nom_table

le * symbole sera utilisé pour désigner toutes les colonnes, et en utilisant cela, nous pouvons interroger toutes les colonnes d'une table SQLite. Pour récupérer tous les enregistrements de la table employee que nous avons créée précédemment, nous devons exécuter le code suivant.

importer sqlite3 conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") cur.execute("SELECT * FROM employee") lignes = cur.fetchall() print("\n [+] Interrogation des données \n") pour i dans les lignes : print(i) cur.close() conn.commit() conn.Fermer()

Le code ci-dessus affichera tous les enregistrements présents dans la table des employés que nous avons créée précédemment. La sortie du programme ressemblera à ceci :

Interroger les données dans un ordre spécifique

Parfois, nous devons interroger les données d'une table dans un ordre défini comme croissant ou décroissant. Nous pouvons utiliser l'instruction SELECT avec le mot-clé ORDER BY pour afficher les données dans l'ordre. La syntaxe de base du mot clé ORDER BY dans l'instruction SELECT est :

SELECT nom_colonnes FROM nom_table ORDER BY nom_colonnes

Voyons comment nous pouvons utiliser le mot-clé ORDER BY pour afficher les données de la table des employés trier par le nom.

importer sqlite3 conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") cur.execute("SELECT * FROM employé ORDER BY nom") table = cur.fetchall() pour i dans le tableau : print(i) cur.close() conn.commit() conn.Fermer()

Vous pouvez voir la sortie du code ci-dessus, comme indiqué ci-dessous.

Vous pouvez remarquer dans la sortie que les données ont été affichées dans l'ordre croissant de la colonne Nom.

Mise à jour des enregistrements dans une table

Il existe de nombreuses situations où nous souhaitons mettre à jour la table de nos bases de données. Par exemple, si nous utilisons la base de données pour une application scolaire, nous devrons alors mettre à jour les données si un étudiant est transféré dans une nouvelle ville. Nous pouvons rapidement mettre à jour une ligne de n'importe quelle table de notre base de données en utilisant le METTRE À JOUR instruction de SQL dans la méthode execute(). Nous devrons utiliser la clause WHERE de SQL comme condition pour sélectionner l'employé. La syntaxe de base du METTRE À JOUR l'énoncé est présenté ci-dessous.

UPDATE nom_table SET update_required WHERE Some_condition

Voir l'exemple ci-dessous comme illustration de l'instruction UPDATE.

importer sqlite3 conn = sqlite3.connecter("exemple.db") print("\n [+] Connexion réussie à la base de données") cur = conn.curseur() print("\n [+] Le curseur a été configuré avec succès") print("\n [+] Données avant la mise à jour\n") cur.execute("SELECT * FROM employé") avant = cur.fetchall() pour i avant : print(i) cur.execute("UPDATE employee SET name = 'Aditya' where name = 'Sam'") print("\n [+] Data After Update\n") cur.execute("SELECT * FROM employé") après = cur.fetchall() pour i dans après : print(i) cur.close() conn.commit() conn.Fermer()

Le programme ci-dessus mettra à jour la table employé. Il remplace le nom Sam avec le nom Aditya partout où il apparaît dans le tableau. Voir l'image ci-dessous pour la sortie du programme.

Conclusion

C'est notre guide complet pour effectuer certaines tâches de base liées à la base de données SQLite à l'aide de Python. Dans le prochain tutoriel, nous verrons quelques utilisations plus avancées qui devraient vous amener au prochain niveau d'apprentissage de la base de données SQLite pour Python. Restez à l'écoute de FOSSLinux.

Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...
Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...