SQL Intermédiaire
Jointures, sous-requêtes, alias, UNION et administration simple : la suite pour interroger et structurer une base de données
Objectif pédagogique
À la fin de ce module, vous saurez combiner des tables avec des jointures et sous-requêtes, utiliser les CTE et opérateurs ensemblistes, et faire évoluer une structure de table avec rigueur.
Chapitres
Jointures fondamentales
Jusqu'ici, chaque requête ne portait que sur une seule table. Une base de données relationnelle contient souvent plusieurs tables…
Voir les détails du chapitre
- INNER JOIN : combiner deux tables liées
- Alias de table et de colonne (AS)
- LEFT JOIN : garder toutes les lignes même sans correspondance
- RIGHT JOIN : garder toutes les lignes de la table de droite
- FULL OUTER JOIN : garder toutes les lignes des deux tables
- Comparer les 4 jointures : laquelle utiliser ?
- Le piège des NULL dans une condition ON
- Éviter les colonnes ambiguës entre tables jointes
- Cas pratique final : une requête avec jointure combinée
Jointures avancées et combinées
Un joint une table avec ellemême — utile pour comparer des lignes entre elles, par exemple pour trouver des paires de produits qui…
Voir les détails du chapitre
- SELF JOIN : comparer des lignes d'une même table
- CROSS JOIN : le produit cartésien
- NATURAL JOIN et la clause USING
- Jointures chaînées : combiner 3 tables
- JOIN combiné à GROUP BY et HAVING
- JOIN combiné à SUM et AVG
- Ordre d'exécution : jointure, puis WHERE, puis GROUP BY
- LEFT JOIN + IS NULL : trouver les lignes sans correspondance
- Cas pratique : classement par jointures combinées
Sous-requêtes
Une sousrequête est une requête placée à l'intérieur d'une autre — entre parenthèses —, dans une clause ou . Sousrequête avec IN,…
Voir les détails du chapitre
- Sous-requêtes simples (dans WHERE ou SELECT)
- Sous-requête corrélée vs non corrélée
- EXISTS : tester l'existence d'une correspondance
- NOT EXISTS : tester l'absence de correspondance
- Le piège de NOT IN avec des valeurs NULL
- Sous-requête dans FROM : une table dérivée
- ANY, ALL, SOME : comparer à un ensemble
- Sous-requête ou JOIN : quand préférer laquelle ?
- Cas pratique : sous-requêtes combinées
CTE et opérateurs ensemblistes
combine les résultats de deux requêtes en un seul résultat — à condition qu'elles renvoient le même nombre de colonnes, de types c…
Voir les détails du chapitre
- UNION : combiner les résultats de deux requêtes
- Le piège de l'ordre des colonnes dans un UNION
- INTERSECT : l'intersection de deux requêtes
- EXCEPT : la différence entre deux requêtes
- WITH : introduire une CTE
- Enchaîner plusieurs CTE
- Réécrire une sous-requête complexe en CTE
- CTE ou sous-requête en FROM : quand choisir quoi ?
- Cas pratique : rapport combinant UNION et CTE
Définir et faire évoluer une table
définit une nouvelle table : son nom, ses colonnes, et le type de donnée attendu dans chacune. Chaque ligne entre parenthèses défi…
Voir les détails du chapitre
- Créer une table (CREATE TABLE)
- NOT NULL et UNIQUE : deux contraintes simples
- DEFAULT : une valeur par défaut
- CHECK : imposer une règle sur les valeurs
- Clé primaire et clé étrangère
- Clé primaire composite
- Colonne auto-incrémentée
- ALTER TABLE : faire évoluer une table existante
- DROP TABLE et TRUNCATE TABLE
- Cas pratique : concevoir une table complète
Modifier les données avec rigueur
Trois commandes modifient les données d'une table (contrairement à , qui ne fait que les lire). ajoute une nouvelle ligne. modifie…
Voir les détails du chapitre
- INSERT, UPDATE, DELETE : rappel de la syntaxe
- INSERT INTO … SELECT
- UPDATE avec une sous-requête en WHERE
- DELETE avec une sous-requête en WHERE
- ON DELETE CASCADE
- ON DELETE SET NULL
- Transactions : BEGIN et COMMIT
- Transactions : ROLLBACK et l'atomicité
- Tester une modification avec SELECT avant de l'exécuter
- Cas pratique : modifier des données en toute sécurité
Index approfondi
Un index est une structure auxiliaire que la base de données construit sur une colonne, pour accélérer les recherches sur cette co…
Voir les détails du chapitre
- Index : principe et intérêt
- Index composite
- Index UNIQUE
- Index et ORDER BY : accélérer un tri
- Ce qui est indexé automatiquement
- Quand un index n'aide pas
- Lire un plan d'exécution simple : EXPLAIN
- Cas pratique : choisir les bons index
Mise en pratique : bibliothèque
Ce chapitre introduit un nouveau scénario : une médiathèque, avec trois tables indépendantes du reste du catalogue. est une table…
Voir les détails du chapitre
- Les tables livres, adhérents et emprunts
- Jointure à trois tables : qui a emprunté quoi
- LEFT JOIN + IS NULL : les livres jamais empruntés
- GROUP BY après jointure : les genres les plus empruntés
- CTE : les emprunts en retard
- Contraintes sur emprunts : FK, NOT NULL, DEFAULT
- Enregistrer un retour de livre (UPDATE ciblé)
- Index utiles sur cette base
- Cas pratique : rapport d'activité de la médiathèque
Mise en pratique : clinique
Ce chapitre introduit un nouveau scénario : une clinique, avec trois tables enchaînées. Les trois tables s'enchaînent : référence…
Voir les détails du chapitre
- Les tables patients, consultations et prescriptions
- Jointure chaînée : le parcours d'un patient
- Sous-requête corrélée : la dernière consultation de chaque patient
- Clé composite sur la table de liaison prescriptions
- NOT EXISTS : patients sans aucune consultation
- ON DELETE CASCADE : supprimer un patient et son historique
- Transaction : enregistrer une consultation et sa prescription
- Index sur la table de liaison
- Cas pratique : tableau de bord de la clinique
Mise en pratique : restaurant
Dernier scénario du module : un restaurant avec livraison, sur trois tables indépendantes. Comme au chapitre 2, désigne directemen…
Voir les détails du chapitre
- Les tables plats, tickets et expeditions
- CTE : le chiffre d'affaires par plat cette semaine
- EXISTS : tickets sans livraison associée
- INTERSECT / EXCEPT : plats commandés cette semaine vs la précédente
- ALTER TABLE : ajouter une colonne de statut de livraison
- INSERT INTO … SELECT : dupliquer un ticket favori
- Transaction complète : de la commande à la livraison
- Cas pratique de synthèse : rapport hebdomadaire
Progression du module
0/90 terminées
Ce module inclut
- ✓ 90 leçons · durée estimée ~19h
- ✓ 223 exercices pratiques corrigés
- ✓ Quiz de révision par chapitre
- ✓ Quiz de fin de module
- ✓ Certificat de réussite vérifiable
- ✓ Accès permanent une fois débloqué
Votre certificat
Terminez ce module pour débloquer votre certification vérifiable.
Accès complet
La première leçon de chaque chapitre est gratuite (10 leçons sur 90).
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module