Aller au contenu

Parcours · SQL

Interroger une base en écrivant du vrai SQL

Chaque chapitre combine une explication concise, une requête à écrire sur une vraie base exécutée dans votre navigateur, et le schéma de la base sous les yeux.

142

leçons

22

modules

Ce parcours compte pour plusieurs certifications

Toutes les certifications

Chaque niveau demande des leçons de plusieurs parcours, puis un examen final corrigé sur nos serveurs. Le diagnostic et le plan de révision sont ouverts sans abonnement.

Certification Central Campus : ni diplôme d'État, ni certification professionnelle enregistrée au répertoire national.

Les bases du SQL

Découvrez comment lire et filtrer des données.

4 leçons

Filtrage avancé

Conditions composées, BETWEEN, IN, LIKE, NULL et négations, tri des NULL, DISTINCT, alias, LIMIT et pagination.

11 leçons

Fonctions et expressions

Calculs, arrondis et division entière, chaînes de caractères, NULL, CASE et dates : transformer chaque ligne sans jointure ni regroupement.

9 leçons

Agrégations

Calculer des totaux, moyennes et compter des lignes.

2 leçons

Jointures et relations

Relier plusieurs tables grâce aux clés étrangères.

2 leçons

Modélisation de base de données

Comprendre les relations entre tables.

2 leçons

Jointures avancées

Alias et jointures multiples, anti-jointure, filtre dans ON ou dans WHERE, RIGHT et FULL OUTER JOIN, produit cartésien et jointures sur une inégalité.

12 leçons
31Intermédiaire

Alias de tables et jointure à trois tables

Nommer chaque table par un alias court pour écrire une jointure à trois tables lisible.

Ouvrir la leçon
32Intermédiaire

Traverser quatre tables : qui a acheté quoi ?

Enchaîner trois jointures pour relier clients, commandes, lignes de commande et produits.

Ouvrir la leçon
33Intermédiaire

Détail d'une commande et montant par ligne

Joindre la table de détail aux produits et calculer le montant de chaque ligne de commande.

Ouvrir la leçon
34Intermédiaire

Table de liaison N-N et filtre de date

Traverser une table de liaison N-N et ne garder que les inscriptions tardives.

Ouvrir la leçon
35Intermédiaire

Professeurs, matières et classes

Partir de la table référencée pour lister chaque professeur avec sa matière et sa classe.

Ouvrir la leçon
36Intermédiaire

Jointure filtrée sur deux critères

Filtrer le résultat d'une jointure multiple sur des colonnes venant de tables différentes.

Ouvrir la leçon
37Intermédiaire

Anti-jointure : les classes sans élève

Combiner LEFT JOIN et IS NULL pour trouver les lignes qui n'ont aucune correspondance.

Ouvrir la leçon
38Intermédiaire

INNER JOIN ou LEFT JOIN : mesurer la différence

Compter les lignes produites par une jointure interne et par une jointure externe gauche.

Ouvrir la leçon
39Intermédiaire

LEFT JOIN : filtrer dans ON ou dans WHERE

Placer un filtre dans ON pour garder les lignes sans correspondance, au lieu de les perdre dans WHERE.

Ouvrir la leçon
40Intermédiaire

RIGHT JOIN et FULL OUTER JOIN : rapprocher deux listes

Rapprocher deux tables qui ont des absents de chaque côté avec FULL OUTER JOIN et COALESCE.

Ouvrir la leçon
41Intermédiaire

CROSS JOIN : générer toutes les combinaisons

Produire une grille de combinaisons avec CROSS JOIN, puis repérer celles qui n'existent pas.

Ouvrir la leçon
42Intermédiaire

Jointure sur une inégalité (non-équi)

Écrire une condition de jointure avec <= pour associer chaque acheteur aux biens de son budget.

Ouvrir la leçon

Agrégations avancées

MIN, MAX, COUNT DISTINCT, GROUP BY multi-colonnes, HAVING, agrégation conditionnelle et GROUP_CONCAT sur des cas de reporting.

13 leçons
43Débutant

MIN et MAX

Trouver les prix extrêmes du catalogue pour cadrer une grille tarifaire.

Ouvrir la leçon
44Débutant

COUNT DISTINCT

Compter des valeurs uniques pour mesurer la couverture géographique des clients.

Ouvrir la leçon
45Intermédiaire

GROUP BY sur deux colonnes

Regrouper les commandes par client et par statut pour suivre le service client.

Ouvrir la leçon
46Intermédiaire

SUM sur order_items

Totaliser les quantités vendues par produit pour piloter le réassort.

Ouvrir la leçon
47Intermédiaire

HAVING : filtrer les groupes

Ne garder que les clients qui ont commandé plus d'une fois, pour un programme de fidélité.

Ouvrir la leçon
48Intermédiaire

HAVING avec AVG

Repérer les catégories dont le prix moyen dépasse 100 € pour la vitrine premium.

Ouvrir la leçon
49Intermédiaire

WHERE et HAVING dans la même requête

Filtrer les lignes puis les groupes : rendez-vous terminés par service hospitalier.

Ouvrir la leçon
50Intermédiaire

ORDER BY sur un agrégat

Classer les classes par effectif décroissant, sans les classes vides.

Ouvrir la leçon
51Intermédiaire

Agrégation conditionnelle

Compter plusieurs cas dans la même ligne avec SUM(CASE …) ou FILTER : un tableau croisé de statuts.

Ouvrir la leçon
52Intermédiaire

Chiffre d'affaires par client

Jointures et SUM arrondi pour classer les clients par chiffre d'affaires.

Ouvrir la leçon
53Intermédiaire

Unités vendues et commandes par produit

Distinguer unités vendues et nombre de commandes par produit avec SUM et COUNT DISTINCT.

Ouvrir la leçon
54Intermédiaire

Moyenne du montant d'une commande

Agréger en deux étapes : le montant de chaque commande, puis le panier moyen arrondi.

Ouvrir la leçon
55Intermédiaire

GROUP_CONCAT et string_agg

Concaténer les valeurs d'un groupe en une liste triée : les livres empruntés par chaque membre.

Ouvrir la leçon

Modélisation avancée

Clés primaires et candidates, clés étrangères déclarées, tables de liaison N-N et normalisation, vérifiées par des requêtes.

5 leçons

Sous-requêtes

Requêtes imbriquées : valeur scalaire, liste avec IN et NOT IN, table dérivée dans le FROM et sous-requêtes corrélées.

9 leçons
61Intermédiaire

Sous-requête scalaire : égaler le maximum

Comparer chaque ligne à une valeur calculée par une sous-requête, et garder tous les ex æquo.

Ouvrir la leçon
62Intermédiaire

Prix supérieur à la moyenne

Filtrer les lignes au-dessus d'une moyenne calculée par une sous-requête non corrélée, évaluée une seule fois.

Ouvrir la leçon
63Intermédiaire

Sous-requête dans le SELECT : écart au plus cher

Ajouter à chaque ligne une colonne calculée par une sous-requête scalaire placée dans le SELECT, ici l'écart au produit le plus cher.

Ouvrir la leçon
64Intermédiaire

IN avec sous-requête

Filtrer avec IN sur une liste de valeurs calculée par une sous-requête, sans les doublons qu'une jointure produirait.

Ouvrir la leçon
65Intermédiaire

IN avec sous-requête filtrée

Filtrer et joindre à l'intérieur de la sous-requête d'un IN pour répondre à une question qui traverse plusieurs tables.

Ouvrir la leçon
66Intermédiaire

NOT IN : clients sans commande

Exclure les valeurs d'une sous-requête avec NOT IN, et comprendre pourquoi un seul NULL dans la liste vide toujours le résultat.

Ouvrir la leçon
67Intermédiaire

Table dérivée : une sous-requête dans le FROM

Utiliser le résultat d'une sous-requête comme une table, avec un alias, pour agréger en deux étapes : montant par commande puis comparaison.

Ouvrir la leçon
68Intermédiaire

Sous-requête corrélée : comparer à son groupe

Écrire une sous-requête qui dépend de la ligne externe pour comparer chaque salarié à la moyenne de son propre département.

Ouvrir la leçon
69Intermédiaire

Sous-requête corrélée dans le SELECT

Calculer une statistique par ligne avec une sous-requête scalaire corrélée dans le SELECT, en gardant les lignes sans correspondance.

Ouvrir la leçon

Ensembles et jointures avancées

Opérateurs ensemblistes (UNION, UNION ALL, INTERSECT, EXCEPT), sous-requêtes corrélées EXISTS / NOT EXISTS et auto-jointures (SELF JOIN).

4 leçons

Manipulation des données

INSERT, UPDATE et DELETE en sécurité, puis INSERT … SELECT, mises à jour et suppressions par sous-requête, et UPSERT.

9 leçons

Structure, contraintes et transactions

CREATE TABLE et contraintes, ALTER, clés étrangères en cascade, transactions, vues, index et plan d'exécution, colonnes JSON.

7 leçons

SQL avancé

Premières fonctions de fenêtrage (classements, LAG et LEAD) et expressions de table communes : WITH, CTE multiples et CTE récursives.

6 leçons

Fonctions de fenêtrage analytiques

Cumuls, moyennes mobiles, parts du total, top N par groupe, dédoublonnage et comparaison au meilleur : les requêtes analytiques du quotidien.

6 leçons

Cas pratiques

Requêtes complètes tirées de situations réelles : jointures, filtres, agrégats, contrôle qualité et sécurité des requêtes.

7 leçons

Cas pratique : hôpital

Pilotez l'activité d'un hôpital avec SQL : charge des médecins sur un trimestre, file active d'un service, palmarès et coût des prescriptions, médecins sans planning et délai entre deux rendez-vous. Jointures externes, chaînes de jointures, NOT EXISTS, LAG et dates sur le jeu de données hôpital.

6 leçons

Cas pratique : cinéma

Pilotez l'exploitation d'un cinéma : casting via la table de liaison N-N film_actors, programmation des salles, recette par film, films les plus diffusés et taux de remplissage des séances. JOIN, LEFT JOIN, GROUP BY, SUM, HAVING et division décimale sur des données réelles.

5 leçons

Cas pratique : bibliothèque

Un projet métier complet sur le jeu de données bibliothèque : relation N-N livre/auteur, activité des membres, fonds dormant, retours en retard et emprunts en retard à une date d'inventaire, avec les fonctions de date de SQLite.

5 leçons

Cas pratique : immobilier

Pilotez une agence immobilière en SQL : biens par agent, visites, offres reçues, biens sans offre et écart entre la meilleure offre et le prix affiché. Jointures, GROUP BY, agrégats multiples, anti-jointure et pourcentages arrondis sur le jeu de données immobilier.

5 leçons

Cas pratique : entreprise

Mise en situation RH sur le jeu de données entreprise : agrégations par département, affectations N-N projets/employés, auto-jointure managériale, employés sans subordonné, salaire comparé à la moyenne du département (fonction de fenêtre) et organigramme complet par CTE récursive.

6 leçons

Cas d'examen

Cas d'examen chronométrables : un énoncé long et précis, une requête complète à écrire en temps limité, comme le jour de l'épreuve.

7 leçons