Titre : Gérer des bases de données avec SQLite et Python


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.

    Laisser un commentaire

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