Aller au contenu principal

Les sous-requêtes

Notions théoriques

Les sous-requêtes sont des requêtes SQL imbriquées dans une autre requête.

astuce

Les sous-requêtes peuvent être très utiles pour résoudre des problèmes plus complexes qui nécessitent plusieurs étapes de traitement des données.

Les sous-requêtes peuvent être utilisées dans diverses parties d'une requête SQL, y compris le SELECT, FROM, WHERE et HAVING clauses.

info

Une sous-requête est exécutée avant la requête principale et les résultats de la sous-requête sont utilisés par la requête principale pour son exécution. Ainsi, l'ordre d'exécution est de l'intérieur vers l'extérieur.

Exemple pratique

Imaginons que nous voulons trouver tous les livres qui ont plus de pages que la moyenne des pages de tous les livres. Pour cela, nous pouvons utiliser une sous-requête dans la clause WHERE pour calculer d'abord la moyenne des pages, puis utiliser cette valeur pour filtrer les livres.

MPD_bibliotheque.png

SELECT titre
FROM livres
WHERE nbpages > (SELECT AVG(nbpages) FROM livres);

Test de mémorisation/compréhension


Qu'est-ce qu'une sous-requête SQL ?


Quand une sous-requête est-elle exécutée ?


Quelle est la requête qui trouve tous les livres qui ont plus de pages que la moyenne des pages de tous les livres ?


Quel est l'ordre d'exécution des requêtes lorsque vous utilisez une sous-requête ?



TP pour réfléchir et résoudre des problèmes

A partir du schéma « Modèle Conceptuel de Données » MCD représenté ci-dessus, écrire les requêtes SQL pour répondre aux questions suivantes.

Télécharger le fichier 'cdi.sql' - Télécharger le MCD

Mission 1

MPD_bibliotheque.png

Votre 1ère mission est de :

  • trouver le nom de l'auteur qui a écrit le livre avec le plus grand nombre de pages.
Une solution

Mission 2

MPD_bibliotheque.png

Votre 2ème mission est de :

  • trouver le titre du livre qui a le plus grand nombre de pages et l'auteur de ce livre.
Une solution