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 !

SQLite - Python

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