Le modèle de données
Une médiathèque enregistre ses adhérents et leurs emprunts :
| adherent | emprunt |
|---|---|
id (PK) | id (PK) |
nom | id_adherent (FK → adherent.id) |
ville | titre, date_emprunt |
Téléchargez le script (colonne de droite) et importez-le : mariadb -u root -p < base-mediatheque.sql.
INNER JOIN : uniquement les correspondances
SELECT a.nom, e.titre, e.date_emprunt
FROM adherent a
INNER JOIN emprunt e ON e.id_adherent = a.id
ORDER BY e.date_emprunt DESC;
Seuls les adhérents ayant au moins un emprunt apparaissent.
LEFT JOIN : tout le côté gauche
SELECT a.nom, COUNT(e.id) AS nb_emprunts
FROM adherent a
LEFT JOIN emprunt e ON e.id_adherent = a.id
GROUP BY a.id, a.nom;
Depuis une application : attention à l’injection
// ❌ Vulnérable
$sql = "SELECT nom FROM adherent WHERE ville = '" . $_GET['ville'] . "'";
// ✅ Requête préparée (PDO)
$stmt = $pdo->prepare('SELECT nom FROM adherent WHERE ville = :ville');
$stmt->execute(['ville' => $_GET['ville'] ?? '']);
$noms = $stmt->fetchAll(PDO::FETCH_COLUMN);
🧠 Testez vos connaissances
3 questions. Répondez puis cliquez sur « Corriger ». Rien n’est enregistré : c’est de l’auto-évaluation.
© 2026 Bruno Jousseaume. Ce cours est publié sous licence CC BY-NC-SA 4.0 : vous pouvez le partager et l’adapter en citant l’auteur et un lien vers cette page, sans usage commercial, et en partageant vos adaptations sous la même licence.