SQLite – les bases de données en Python

Le module SQLite de Python permet à vos programmes de manipuler les bases de données, en stockant les données dans un fichier sans avoir besoin d’un serveur.

SQLite

En travaillant sur un projet qui stocke toutes sortes de données utilisateur, il est nécessaire d’avoir une bonne base de données pour gérer les informations des utilisateurs et pouvoir les gérer de manière efficace.

En plus de stocker les données, vous devez être en mesure de créer, récupérer, mettre à jour et supprimer ces données, ce qui n’est pas très pratique avec des fichiers simples.

Par conséquent, le module SQLite3 est un moyen rapide, léger et facile pour stocker et manipuler les données les plus complexes de manière efficace.

Avant de commencer, je vous conseille d’apprendre les bases de MySQL.

Les types de données disponibles dans SQLite

SQLite offre moins de types de données que les autres implémentations SQL. Cela peut être un peu contraignant. Cependant, SQLite facilite bien d’autres choses. Jetons un coup d’œil aux types de données disponibles :

NULL – une valeur NULL
INTEGER – un entier
REAL – une valeur à virgule flottante (décimale)
TEXT – du texte
BLOB – un gros objet binaire qui est stocké exactement comme entrée
Certains types de données tels que les dates sont manquants. Malheureusement, lorsque vous utilisez SQLite, vous êtes limité à ces types de données.

Connexion à la base de données SQLite

Pour exécuter des fonctions SQL de base à l’aide de python, nous devons d’abord importer le module sqlite3 dans notre code.
Voici le code qui permet de se connecter à une base de données locale sur un ordinateur.

import sqlite3
# Établir une connexion à la base de données
# et créer un objet de connexion
conn = sqlite3.connect('database.db')
# Créer un curseur vers la base de données
cur = conn.cursor()
print("Ouverture de la base de données")

Nous devons d’abord importer le module sqlite3 et créer une connexion à la base de données. Vous pouvez lui transmettre un chemin de fichier ou le nom du fichier. Dans notre cas, nous avons créé un fichier appelé database.db.

Cela alloue uniquement de la mémoire pour la base de données et récupère toutes les données du fichier, de sorte que la base de données soit construite à partir du fichier. Ici, database.db est le fichier de base de données dans lequel les données seront stockées. Nous invoquons donc la base de données à partir de ce fichier.

Ensuite, nous avons créé un objet curseur, qui nous permet d’interagir avec la base de données. Le curseur pointe vers la base de données, il est utilisé pour y naviguer afin que nous puissions nous déplacer et exécuter des requêtes SQL.

Maintenant que nous avons un objet curseur, nous pouvons exécuter des requêtes SQL comme ceci :

cur.execute ("Votre-Requête-SQL;")

Nous avons mis notre requête SQL entre guillemets. Pour les requêtes plus longues, il est souvent préférable d’utiliser des triples guillemets, afin d’écrire des requêtes sur plusieurs lignes.

Créer une table dans la base de données SQLite

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à.
Pour créer une table dans SQLite3, vous pouvez utiliser la requête Create Table dans la méthode execute().

Nous allons créer une table pour des clients contenant trois colonnes ID (Integer), Nom (Char avec une longueur maximale de 20) et Age (Integer).

Table_clients ='''CREATE TABLE IF NOT EXISTS Clients(
                          ID INT,
                          Nom TEXT,
                          Age INT
                         )'''
cur.execute(Table_clients)

Voici ce que nous avons fait.

  • Nous avons utilisé la fonction execute sur l’objet curseur pour exécuter une requête SQL.
  • L’utilisation du langage SQL pour générer une table appelée Clients.
  • IF NOT EXISTS vérifie si la table existe, et si c’est le cas, rien ne sera fait.
  • Nous avons créé quatre colonnes : ID , Nom et Age.
  • Nous avons validé les modifications en utilisant la fonction commit().

Si vous exécutez la commande CREATE TABLE et que la base de données existe déjà, vous aurez un message d’erreur.

Insérer des données

Pour insérer des informations dans votre base de données SQLite, vous devez stocker votre requête INSERT INTO dans une chaîne. Après cela, vous pouvez transmettre la chaîne de requête à execute(). Puis, il faut utiliser la fonction commit() pour valider les modifications dans la base de données.

Insérons trois clients dans notre table :

import sqlite3
conn = sqlite3.connect('database.db')
cur = conn.cursor()
print("Ouverture de la base de données")
Insert_clients ='''INSERT INTO Clients(ID,Nom,Age)
                    VALUES('1','Marie',20),
                          ('2','James',22),
                          ('3','Eva',19)
                 '''
cur.execute(Insert_clients)
conn.commit()

Afficher les données

Pour afficher les valeurs d’une table, nous utilisons :

import sqlite3
conn = sqlite3.connect('database.db')
cur = conn.cursor()
print("Ouverture de la base de données")

cur.execute('''SELECT * FROM Clients''')
result = cur.fetchall()
print(result)
Ouverture de la base de données
[(1, 'Marie', 19), (2, 'James', 22), (3, 'Eva', 19)]

fetchone() : récupère la première ligne de notre table qui correspond aux paramètres passés.

fetchall() : récupère toutes les lignes qui correspondent aux paramètres définis.

Lorsque vous terminez, fermez la connexion. Assurez-vous que les modifications ont été validées, sinon elles seront perdues.

conn.close()

Modifier et supprimer des données

Être en mesure de mettre à jour les tables de votre base de données est essentiel. Sinon vos données deviendront obsolètes et pratiquement inutiles. Parfois, vous devrez également supprimer certaines lignes de vos données.

Commençons par une modification.

import sqlite3
conn = sqlite3.connect('database.db')
cur = conn.cursor()
print("Ouverture de la base de données")

modif_clients = """
UPDATE clients
    SET age = 30
    WHERE Nom = 'Marie'
    """
cur.execute(modif_clients)
conn.commit()

Nous avons modifié l’age de Marie.

Supprimer des valeurs dans une table.

import sqlite3
conn = sqlite3.connect('database.db')
cur = conn.cursor()
print("Ouverture de la base de données")

conn.execute("DELETE from  clients where ID = 2")
conn.commit()

cur.execute('''SELECT * FROM Clients''')
result = cur.fetchall()
print(result)

Exécution du code. Nous avons supprimé les valeurs de l’id N° 2.

Ouverture de la base de données
[(1, 'Marie', 30), (3, 'Eva', 19)]

Utiliser le terminal

Il est possible d’utiliser sqlite avec le terminal (linux).

>>> $ cd votre_répertoire_de_travail
>>> $ sqlite3 database.db
SQLite version 3.31.1 2020-01-27 19:55:54
Enter ".help" for usage hints.
sqlite> .tables
Clients
sqlite> .exit
$ ls
database.db

Avec quelques lignes de code, vous pouvez créer une base de données puissante, rapide et dynamique en toute simplicité avec SQLite3.

SQLite – les bases de données en Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Retour en haut