SQLite - Python: Un Guide Pour Les Débutants
Salut à toi, futurs magiciens des bases de données ! Je suis ravi de vous guider dans cette exciting aventure à la découverte du monde de SQLite et Python. En tant que quelqu'un qui enseigne l'informatique depuis des années, je peux vous assurer que d'ici la fin de ce tutoriel, vous manipulerez les bases de données comme un pro. Alors, mettons-nous en route !
Installation
Avant de commencer notre aventure, nous devons nous assurer d'avoir les bons outils. La bonne nouvelle, c'est que si vous avez Python installé (ce que j' supone que vous avez), vous avez déjà SQLite ! Il est inclus avec Python, donc pas besoin d'installations supplémentaires. Ça n'est pas pratique ?
API du module sqlite3 de Python
Maintenant, parlons de l'étoile de notre spectacle : le module sqlite3. Ce module est votre billet pour travailler avec des bases de données SQLite en Python. Il fournit un ensemble de fonctions et de méthodes que nous utiliserons tout au long de ce tutoriel.
Voici un tableau des principales méthodes que nous utiliserons :
Méthode | Description |
---|---|
connect() | Crée une connexion à la base de données |
cursor() | Crée un objet curseur pour exécuter des commandes SQL |
execute() | Exécute une seule commande SQL |
executemany() | Exécute une commande SQL contre toutes les séquences de paramètres |
commit() | Valide la transaction en cours |
rollback() | Annule toutes les modifications apportées à la base de données depuis l'appel.last commit() |
close() | Ferme la connexion à la base de données |
Ne vous inquiétez pas si elles vous semblent un peu mystérieuses maintenant. Nous les explorerons en détail au fur et à mesure.
Connexion à la Base de Données
Commençons par nous connecter à une base de données. C'est comme frapper à la porte de la maison de vos données !
import sqlite3
# Se connecter à la base de données (ou la créer si elle n'existe pas)
conn = sqlite3.connect('my_first_db.db')
print("Connexion à la base de données réussie !")
# N'oubliez pas de fermer la connexion lorsque vous avez terminé
conn.close()
Dans cet exemple, nous importons le module sqlite3 et utilisons sa fonction connect()
pour créer une connexion à une base de données nommée 'my_first_db.db'. Si cette base de données n'existe pas, SQLite la créera pour nous. Quelle attention !
Création d'une Table
Maintenant que nous sommes connectés, créons une table. Pensez à une table comme un tableau à l'intérieur de votre base de données.
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Créer une table
cursor.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER)''')
print("Table créée avec succès !")
conn.commit()
conn.close()
Ici, nous créons une table appelée 'students' avec trois colonnes : id, name, et age. La clause IF NOT EXISTS
est notre filet de sécurité - elle empêche les erreurs si nous essayons accidentellement de créer la même table deux fois.
Opération INSERT
Il est temps d'ajouter des données à notre table. C'est comme remplir notre tableau !
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Insérer une seule ligne de données
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ("Alice", 22))
# Insérer plusieurs lignes de données
students_data = [("Bob", 19), ("Charlie", 21), ("David", 20)]
cursor.executemany("INSERT INTO students (name, age) VALUES (?, ?)", students_data)
print("Données insérées avec succès !")
conn.commit()
conn.close()
Dans cet exemple, nous insérons des données dans notre table 'students'. Nous utilisons execute()
pour une seule insertion et executemany()
pour plusieurs insertions. Les ?
marquent sont des placeholders pour nos données, ce qui aide à prévenir les attaques de type SQL injection. La sécurité d'abord !
Opération SELECT
Maintenant, rétrievons nos données. C'est comme demander à notre base de données de nous montrer ce qu'elle se souvient !
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Sélectionner toutes les lignes de la table students
cursor.execute("SELECT * FROM students")
# Récupérer toutes les lignes
rows = cursor.fetchall()
for row in rows:
print(f"ID: {row[0]}, Name: {row[1]}, Age: {row[2]}")
conn.close()
Ici, nous sélectionnons toutes les lignes de notre table 'students' et les affichons. Le *
dans notre requête SQL signifie "donne-moi tout". C'est comme dire "Ouvre-toi !" à votre base de données.
Opération UPDATE
Parfois, nous devons modifier nos données. Mettons à jour l'âge d'un étudiant :
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Mettre à jour l'âge d'un étudiant
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (23, "Alice"))
print("Données mises à jour avec succès !")
conn.commit()
conn.close()
Dans cet exemple, nous mettons à jour l'âge d'un étudiant dans notre table 'students'.
Credits: Image by storyset