15 minutes de SQL
Utiliser une sous-requête avec IN
Sous-requête : l’idée
Une sous-requête est une requête SQL placée à l’intérieur d’une autre. Elle permet souvent d’écrire une condition « en deux temps ».
Un schéma classique :
... WHERE x IN (SELECT ...)
La sous-requête calcule un ensemble de valeurs, et la requête principale garde les lignes dont x appartient à cet ensemble.
Remarque : selon les enseignants, les sous-requêtes peuvent être vues comme un prolongement naturel des requêtes de base ; l’essentiel ici est d’en comprendre la logique.
Exemples commentés
SELECT pseudo
FROM joueurs
WHERE id IN (
SELECT id
FROM parties
WHERE date = '2024-06-01'
);
On affiche les clients ayant passé au moins une commande. La sous-requête donne les id_client présents dans commandes.
SELECT nom, ville
FROM clients
WHERE id_client IN (
SELECT id_client
FROM commandes
);
On affiche les films dont le budget est supérieur à la moyenne des budgets de tous les films. La sous-requête calcule cette moyenne.
SELECT film_titre, budget
FROM films
WHERE budget > (
SELECT AVG(budget)
FROM films
);
On veut afficher les triangles dont le périmètre est strictement supérieur au périmètre moyen.
SELECT idt, ab, ac, bc
FROM triangles
WHERE (ab + ac + bc) > (
SELECT AVG(ab + ac + bc)
FROM triangles
);
Dans une base « étudiants / notes », on veut afficher les étudiants ayant au moins une note inférieure à 8. La sous-requête repère les identifiants concernés dans notes.
etudiants(id_etudiant, nom, prenom) et notes(id_etudiant, matiere, note)
SELECT nom, prenom
FROM etudiants
WHERE id_etudiant IN (
SELECT id_etudiant
FROM notes
WHERE note < 8
);
Et pour quelques minutes de plus…
Prendre en main la programmation, pas à pas.
Ces exercices sont conçus pour t’aider à maîtriser progressivement les requêtes SQL, en partant de la lecture et de la compréhension du code, jusqu’à l’écriture autonome de requêtes complètes.
L’objectif n’est pas d’aller vite, mais de construire des automatismes solides, en comprenant ce que fait chaque commande, puis en apprenant à les utiliser par toi-même.
L’ordre des exercices est volontaire : on lit, on comprend, on complète, puis on écrit seul. Prends le temps de chaque étape : c’est la clé pour progresser durablement.
Niveau 1 Lire et interpréter
Comprendre avant d’écrire.
Dans cette première série, tu observes et analyses des requêtes SQL déjà écrites.
L’objectif est de comprendre la logique et d’être capable d'expliquer ce que renvoie la requête.
Niveau 2 Compléter une requête
Écrire, mais avec un cadre.
Ici, tu passes à l’écriture sans partir de zéro.
Le squelette de la requête est fourni : il te reste à compléter certaines parties
pour que le code fonctionne correctement.
Ce format permet de se concentrer sur l’essentiel, sans se perdre dans la structure générale.
Niveau 3 Écrire une requête
Passer à l’autonomie.
Dans cette dernière série, tu écris les requêtes complètes à partir d’une consigne.
Tu dois organiser ton code, choisir les bonnes instructions et construire la logique globale.
C’est ici que tu mets en pratique tout ce que tu as appris dans les niveaux précédents.
Contenu réservé aux membres
Les exercices interactifs et le feedback IA sont réservés aux membres.
On veut récupérer les pseudos des joueurs ayant joué à une date donnée. On commence par sélectionner les identifiants dans
parties, puis on récupère les pseudos dansjoueurs.joueurs(id, pseudo, credit, niveau)etparties(id, date, score)