© Éditions Eyrolles
133
chapitre n° 4
Interrogation des données
Cette forme d’écriture n’est pas la plus utilisée, mais elle permet de mieux visualiser certaines
jointures. Elle est plus complexe à écrire, car l’ordre d’apparition des tables dans les clauses
FROM a son importance.
Seules les colonnes de la table qui se trouve au niveau du premier SELECT peuvent être
extraites.
La sous-interrogation doit être placée entre parenthèses. Elle ne doit pas comporter de clause
ORDER BY, mais peut inclure GROUP BY et HAVING.
Le résultat d’une sous-interrogation est utilisé par la requête de niveau supérieur. Une sousinterrogation est exécutée avant la requête de niveau supérieur.
Une sous-interrogation peut ramener une ou plusieurs lignes. Les opérateurs =, >, <, >=, <=
permettent d’en extraire une, les opérateurs IN, ANY et ALL permettent d’en ramener
plusieurs.
Sous-interrogations monolignes
Le tableau suivant détaille quelques sous-interrogations monolignes. Nous nous basons sur
certaines requêtes déjà étudiées (forme relationnelle et SQL2).
Tableau 4-40 Sous-interrogations monolignes
Opérateur
Besoin
Requête
= pour les équijointures ou autojointures (= teste
une ligne)
R1 (Pilotes de la compagnie
de nom 'Air France' ayant
plus de 500 heures de vol.)
SELECT brevet, nom FROM Pilote
WHERE compa
AND nbHVol>500;
R3 (Pilotes sous la responsabilité du pilote de nom
'Alquié'.)
SELECT brevet, nom FROM Pilote
WHERE chefPil =
;
> pour les inéquijointures
R5 (Pilotes ayant plus
d’expérience que le pilote
de brevet 'PL-2'.)
SELECT brevet, nom, nbHVol FROM Pilote
WHERE nbHVol >
;
Web
=
(SELECT comp
FROM Compagnie
WHERE nomComp = 'Air France')
(SELECT brevet FROM Pilote
WHERE nom LIKE '%Alquié%')
(SELECT nbHVol FROM Pilote
WHERE brevet = 'PL-2')
133
chapitre n° 4
Interrogation des données
Cette forme d’écriture n’est pas la plus utilisée, mais elle permet de mieux visualiser certaines
jointures. Elle est plus complexe à écrire, car l’ordre d’apparition des tables dans les clauses
FROM a son importance.
Seules les colonnes de la table qui se trouve au niveau du premier SELECT peuvent être
extraites.
La sous-interrogation doit être placée entre parenthèses. Elle ne doit pas comporter de clause
ORDER BY, mais peut inclure GROUP BY et HAVING.
Le résultat d’une sous-interrogation est utilisé par la requête de niveau supérieur. Une sousinterrogation est exécutée avant la requête de niveau supérieur.
Une sous-interrogation peut ramener une ou plusieurs lignes. Les opérateurs =, >, <, >=, <=
permettent d’en extraire une, les opérateurs IN, ANY et ALL permettent d’en ramener
plusieurs.
Sous-interrogations monolignes
Le tableau suivant détaille quelques sous-interrogations monolignes. Nous nous basons sur
certaines requêtes déjà étudiées (forme relationnelle et SQL2).
Tableau 4-40 Sous-interrogations monolignes
Opérateur
Besoin
Requête
= pour les équijointures ou autojointures (= teste
une ligne)
R1 (Pilotes de la compagnie
de nom 'Air France' ayant
plus de 500 heures de vol.)
SELECT brevet, nom FROM Pilote
WHERE compa
AND nbHVol>500;
R3 (Pilotes sous la responsabilité du pilote de nom
'Alquié'.)
SELECT brevet, nom FROM Pilote
WHERE chefPil =
;
> pour les inéquijointures
R5 (Pilotes ayant plus
d’expérience que le pilote
de brevet 'PL-2'.)
SELECT brevet, nom, nbHVol FROM Pilote
WHERE nbHVol >
;
Web
=
(SELECT comp
FROM Compagnie
WHERE nomComp = 'Air France')
(SELECT brevet FROM Pilote
WHERE nom LIKE '%Alquié%')
(SELECT nbHVol FROM Pilote
WHERE brevet = 'PL-2')
