Lycée Victor Hugo MPSI-PCSI 2016-2017
III Rappels rapides sur les requêtes imbriquées
Pour augmenter le pouvoir d’expression des requêtes SQL il est autorisé d’utiliser une
sous-requête dans les situations suivantes :
•dans un prédicat d’une clause WHERE prenant la forme d’une comparaison, quand
la sous-requête ne renvoie qu’une seule valeur.
•dans un prédicat d’une clause WHERE utilisant IN ou EXISTS (éventuellement pré-
cédé de NOT) quand la sous-requête renvoie une seule colonne avec éventuellement
plusieurs valeurs.
•après un FROM ou JOIN quand la sous-requête renvoie une table plus riche, qui
joue le rôle de table intermédiaire.
Dans tous les cas la sous-requête doit être entourée par deux parenthèses :
(SELECT....).
Si la sous-requête est utilisée après un FROM ou JOIN elle doit en plus être suivie d’un
nom, qui pourra vour servir à faire référence aux colonnes de la table intermédiaire :
FROM (SELECT....)nom_table_intermédiaire ....
IV Au travail...
Script 1 H
Faire afficher le nom et la population de toutes les villes, par ordre de population dé-
croissante. En déduire la ville la plus peuplée.
Retrouver plus efficacement ce résultat en utilisant une seule requête ne donnant que
la ville concernée (et sa population).
Dans toute la suite, sauf indication contraire, l’objectif est de réponse
à la question posée en n’utilisant qu’une seule requête (avec bien sûr
une sous-requête !)
Script 2 H
Faire afficher le nom de tous les pays dont la densité de population (définie comme le
nombre d’habitants moyen par unité de surface) est supérieure à la densité moyenne
mondiale.
Par lecture des résultats, la France en fait-elle partie ?
Script 3 H
Faire afficher toutes les villes dans le même pays que Houston.
Script 4 H
Même question que précédemment, mais en faisant afficher en plus le nom du pays.
Attention il ne s’agit pas d’une modification mineure de la requête précédente...
Script 5 H
Faire afficher les noms des villes des districts qui possèdent une ville de plus d’un million
d’habitants
2