Introduction
Lorsque vous avez besoin de stocker des données de manière structurée dans une application Python, SQLite est l’un des choix les plus simples et efficaces. Cette base de données légère est intégrée à Python via le module sqlite3
, ce qui signifie aucune installation supplémentaire, aucun serveur à configurer, et un fichier .db
unique pour contenir toutes vos données.
SQLite est particulièrement adapté aux projets personnels, aux jeux, aux applications mobiles ou à des outils en local. Dans cet article, vous allez apprendre à créer une base de données, insérer, lire, mettre à jour et supprimer des données en utilisant Python et SQLite.
1. Qu'est-ce que SQLite ?
SQLite est une base de données relationnelle autonome, rapide et sans serveur. Chaque base est contenue dans un seul fichier .db
et elle respecte le standard SQL.
Avantages :
- Aucune configuration
- Intégré à Python (
sqlite3
) - Idéal pour les petits à moyens projets
2. Se connecter à une base de données SQLite
import sqlite3
connexion = sqlite3.connect('ma_base.db')
curseur = connexion.cursor()
- Si le fichier n’existe pas, il sera créé automatiquement.
cursor()
permet d'exécuter des requêtes SQL.
3. Créer une table
curseur.execute("""
CREATE TABLE IF NOT EXISTS utilisateurs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT,
age INTEGER
)
""")
connexion.commit()
4. Insérer des données
Méthode 1 : avec des valeurs directes
curseur.execute("INSERT INTO utilisateurs (nom, age) VALUES (?, ?)", ("Alice", 30))
connexion.commit()
Méthode 2 : insérer plusieurs lignes
utilisateurs = [("Bob", 25), ("Charlie", 40), ("Diana", 22)]
curseur.executemany("INSERT INTO utilisateurs (nom, age) VALUES (?, ?)", utilisateurs)
connexion.commit()
5. Lire des données
Lire toutes les lignes
curseur.execute("SELECT * FROM utilisateurs")
resultats = curseur.fetchall()
for ligne in resultats:
print(ligne)
Lire une seule ligne
curseur.execute("SELECT * FROM utilisateurs WHERE nom = ?", ("Alice",))
utilisateur = curseur.fetchone()
print(utilisateur)
6. Mettre à jour des données
curseur.execute("UPDATE utilisateurs SET age = ? WHERE nom = ?", (31, "Alice"))
connexion.commit()
7. Supprimer des données
curseur.execute("DELETE FROM utilisateurs WHERE nom = ?", ("Bob",))
connexion.commit()
8. Utiliser des transactions
SQLite utilise automatiquement les transactions. Mais vous pouvez aussi les contrôler manuellement :
try:
connexion.execute("BEGIN")
curseur.execute("INSERT INTO utilisateurs (nom, age) VALUES (?, ?)", ("Eve", 27))
connexion.commit()
except Exception as e:
connexion.rollback()
print("Erreur :", e)
9. Lire avec des colonnes nommées (Row
)
Vous pouvez accéder aux données comme un dictionnaire :
connexion.row_factory = sqlite3.Row
curseur = connexion.cursor()
curseur.execute("SELECT * FROM utilisateurs")
ligne = curseur.fetchone()
print(ligne["nom"], ligne["age"])
10. Fermer la connexion
Toujours fermer la base une fois le travail terminé :
connexion.close()
11. Exemple complet : création, insertion, lecture
import sqlite3
connexion = sqlite3.connect("demo.db")
curseur = connexion.cursor()
curseur.execute("CREATE TABLE IF NOT EXISTS scores (joueur TEXT, points INTEGER)")
curseur.execute("INSERT INTO scores (joueur, points) VALUES (?, ?)", ("Zelda", 120))
curseur.execute("INSERT INTO scores (joueur, points) VALUES (?, ?)", ("Mario", 200))
connexion.commit()
curseur.execute("SELECT * FROM scores")
for ligne in curseur.fetchall():
print(f"{ligne[0]} : {ligne[1]} points")
connexion.close()
Conclusion
Avec SQLite et Python, gérer une base de données devient simple, rapide et sans effort. Que ce soit pour stocker des scores de jeux, gérer un carnet d’adresses, ou suivre des données dans une application, SQLite vous offre une solution locale, fiable et performante. En maîtrisant les requêtes de base, vous pouvez structurer et manipuler vos données comme un pro.