SQLite avec le module sqlite3 de Python
Créer des bases de données et des tables, utiliser INSERT/SELECT/UPDATE, paramétrer les requêtes et gérer les connexions.
SQLite avec le module sqlite3 de Python est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Pourquoi utiliser des bases de données pour l’IA ?
Les fichiers plats conviennent jusqu’à ce que vos données augmentent ou que plusieurs parties d’un projet aient besoin des mêmes enregistrements. Une base de données vous offre des requêtes rapides, des schémas structurés et un accès concurrent sécurisé.
SQLite est une base de données fondée sur un fichier, sans configuration, intégrée à Python via le module sqlite3 — parfaite pour les expériences d’IA et les petits projets.
Se connecter avec sqlite3.connect
sqlite3.connect ouvre ou crée un fichier de base de données et renvoie une connexion. Utilisez :memory: pour une base de données temporaire en RAM.
import sqlite3
conn = sqlite3.connect("ml.db") # creates ml.db if missing
print(conn)Curseurs et cursor.execute
Vous exécutez du SQL via un cursor obtenu à partir de la connexion. cursor.execute(sql) envoie une instruction à la base de données.
import sqlite3
conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())CREATE TABLE IF NOT EXISTS
Définissez une table avec un schéma. IF NOT EXISTS rend l’instruction sûre à exécuter plusieurs fois : elle ne génère pas d’erreur si la table existe déjà.
cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
accuracy REAL,
created_at TEXT
)
""")INSERT avec des marqueurs
Ne construisez jamais du SQL avec un formatage de chaînes : cela favorise les injections SQL et provoque des problèmes avec les guillemets. Utilisez des marqueurs ? et transmettez les valeurs sous forme de tuple.
cur.execute(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
("baseline", 0.82, "2026-05-29"),
)Insérer plusieurs lignes avec executemany
executemany insère une liste de tuples en un seul appel efficace — bien plus rapidement qu’une boucle utilisant execute.
rows = [
("rf", 0.88, "2026-05-29"),
("xgb", 0.91, "2026-05-29"),
]
cur.executemany(
"INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
rows,
)conn.commit() enregistre les modifications
Les écritures sont effectuées dans une transaction et ne sont pas conservées tant que vous n’appelez pas conn.commit(). Oublier cet appel est l’erreur la plus fréquente chez les débutants : vos données disparaissent silencieusement à la fermeture.
conn.commit() # persist all pending INSERT/UPDATE/DELETEInterroger avec fetchall et fetchone
Après un SELECT, récupérez les résultats :
fetchone()— la prochaine ligne uniquefetchall()— toutes les lignes restantes sous forme de liste de tuples- parcourez directement le curseur pour les résultats volumineux
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
print(row) # ("baseline", 0.82) ...Filtrer et trier
SQL effectue le travail complexe : filtrez avec WHERE, triez avec ORDER BY et limitez avec LIMIT. Utilisez également des marqueurs pour les valeurs des requêtes.
cur.execute(
"SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
(0.85,),
)
print(cur.fetchall())Fabrique de lignes pour un accès nommé
Par défaut, les lignes sont des tuples. Définissez conn.row_factory = sqlite3.Row pour accéder aux colonnes par leur nom, ce qui est bien plus lisible.
import sqlite3
conn = sqlite3.connect("ml.db")
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM experiments")
row = cur.fetchone()
print(row["name"], row["accuracy"])Gestionnaires de contexte pour la sécurité
L’utilisation de with sur la connexion valide automatiquement la transaction en cas de succès et l’annule en cas d’erreur. Associée à closing, elle garantit le nettoyage.
import sqlite3
from contextlib import closing
with closing(sqlite3.connect("ml.db")) as conn:
with conn: # auto commit/rollback
conn.execute(
"INSERT INTO experiments (name, accuracy) VALUES (?, ?)",
("svm", 0.79),
)Vérification rapide : conserver les écritures
Vous avez exécuté plusieurs instructions INSERT, puis fermé la connexion — mais les données avaient disparu la fois suivante.
Récapitulatif : SQLite avec sqlite3
Vous pouvez maintenant utiliser une véritable base de données depuis Python :
sqlite3.connectet uncursorCREATE TABLE IF NOT EXISTSpour des schémas sûrsINSERTavec des marqueurs?etexecutemanyconn.commit()pour conserver les écrituresfetchone/fetchall,WHERE/ORDER BY/LIMITsqlite3.Rowet les gestionnaires de contexte pour un code propre et sûr
Ensuite : faire le lien entre pandas et SQL.
Questions Fréquemment Posées
La leçon « SQLite avec le module sqlite3 de Python » est-elle gratuite ?
Oui — le texte complet de « SQLite avec le module sqlite3 de Python » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « SQLite avec le module sqlite3 de Python » ?
Créer des bases de données et des tables, utiliser INSERT/SELECT/UPDATE, paramétrer les requêtes et gérer les connexions. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « SQLite avec le module sqlite3 de Python » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- SQLite avec le module sqlite3 de Python
- Intégration de Pandas et SQL
- Stocker et interroger les résultats de l’apprentissage automatique
- Introduction aux bases de données vectorielles