PaliSkill
← Retour au catalogue
Intermédiaire⏱ ~19h90 leçons

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.

Commencer le module →

Programme du cours

1

Jointures fondamentales

Disponible
0/9

Jusqu'ici, chaque requête ne portait que sur une seule table. Une base de données relationnelle contient souvent plusieurs tables…

Programme 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

Verrouillée

Un joint une table avec ellemême — utile pour comparer des lignes entre elles, par exemple pour trouver des paires de produits qui…

Programme 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

Verrouillée

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,…

Programme 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

Verrouillée

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…

Programme 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

Verrouillée

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…

Programme 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

Verrouillée

Trois commandes modifient les données d'une table (contrairement à , qui ne fait que les lire). ajoute une nouvelle ligne. modifie…

Programme 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

Verrouillée

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…

Programme 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

Verrouillée

Ce chapitre introduit un nouveau scénario : une médiathèque, avec trois tables indépendantes du reste du catalogue. est une table…

Programme 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

Verrouillée

Ce chapitre introduit un nouveau scénario : une clinique, avec trois tables enchaînées. Les trois tables s'enchaînent : référence…

Programme 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

Verrouillée

Dernier scénario du module : un restaurant avec livraison, sur trois tables indépendantes. Comme au chapitre 2, désigne directemen…

Programme 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
  • ✓ Attestation de réussite vérifiable
  • ✓ Accès permanent une fois débloqué
🔒

Votre attestation

Terminez ce module pour débloquer votre attestation vérifiable.

Accès complet

Les 3 premières leçons de ce module sont gratuites.

7 500 XOF / 11,43 € / 12,46 $

Débloquez les 87 leçons restantes de ce module