Travailler avec des bases de données en Python
La gestion des bases de données est essentielle dans le développement logiciel. SQLite offre l'un des moyens les plus simples et puissants pour stocker des données localement. Cette base de données légère est intégrée à Python et ne nécessite aucun serveur dédié.
Les bases de SQLite
Définition et fonctionnement
SQLite est une base de données relationnelle embarquée. Elle ne demande ni installation ni lancement de serveur séparé. Toutes les données sont stockées dans un seul fichier, ce qui en fait un choix idéal pour le prototypage, les applications de bureau et mobiles.
Principaux avantages
SQLite présente de nombreux atouts :
• Intégrée à Python via le module sqlite3 • Aucune configuration supplémentaire requise • Performances élevées pour les projets de petite et moyenne envergure • Simplicité d'utilisation • Prise en charge des requêtes SQL standard • Taille réduite et exigences système minimales
Domaines d'application de SQLite en Python
Cas d'utilisation courants
SQLite est largement utilisé dans les scénarios suivants :
• Projets éducatifs et pratiques • Applications et scripts locaux • Petites applications web, par exemple avec Flask • Systèmes de stockage de configurations • Programmes hors ligne avec stockage local • Prototypage d'applications • Mise en cache de données
Avantages pour les développeurs
Les développeurs Python tirent de nombreux bénéfices de SQLite. La base de données ne nécessite aucune dépendance externe. Elle permet de démarrer rapidement avec les données relationnelles. SQLite prend en charge les transactions et garantit la fiabilité des données.
Premiers pas avec SQLite
Importation et connexion
SQLite est inclus dans la bibliothèque standard de Python. Il suffit d'importer le module correspondant :
import sqlite3
Créer une connexion à la base de données
Connexion à un fichier de base de données
conn = sqlite3.connect('exemple.db')
Si le fichier de base de données n'existe pas, il sera créé automatiquement.
Travailler avec une base de données en mémoire
conn = sqlite3.connect(':memory:')
Cette base de données n'existe que dans la mémoire vive. Elle est supprimée à la fin du programme.
Créer la structure de la base de données
Création de tables
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS utilisateurs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
nom TEXT NOT NULL,
age INTEGER,
email TEXT UNIQUE
)
''')
conn.commit()
Comprendre les types de données
SQLite prend en charge les types de données suivants :
• INTEGER - nombres entiers • TEXT - chaînes de caractères • REAL - nombres à virgule flottante • BLOB - données binaires • NULL - valeurs nulles
Opérations sur les données
Insertion de données
Ajout d'un seul enregistrement
cursor.execute("INSERT INTO utilisateurs (nom, age, email) VALUES (?, ?, ?)",
("Alice", 25, "alice@exemple.com"))
conn.commit()
Insertion multiple de données
utilisateurs = [
("Bob", 30, "bob@exemple.com"),
("Charlie", 22, "charlie@exemple.com"),
("Diana", 28, "diana@exemple.com")
]
cursor.executemany("INSERT INTO utilisateurs (nom, age, email) VALUES (?, ?, ?)", utilisateurs)
conn.commit()
Lecture des données depuis la base
Récupérer tous les enregistrements
cursor.execute("SELECT * FROM utilisateurs")
lignes = cursor.fetchall()
for ligne in lignes:
print(ligne)