Partie I
SQL de base
134
© Éditions Eyrolles
Sous-interrogations multilignes (IN, ALL et ANY)
Les opérateurs multilignes sont les suivants :
• IN compare un élément à une donnée quelconque d’une liste ramenée par la sous-interrogation. Cet opérateur est utilisé pour les équijointures et les autojointures (et les intersections). L’opérateur NOT IN sera employé pour les jointures externes (et les différences).
• ANY compare l’élément à chaque donnée ramenée par la sous-interrogation. L’opérateur
« =ANY » équivaut à IN. L’opérateur «
valeurs », donc « inférieur au maximum ». L’opérateur « >ANY » signifie « supérieur à au
moins une des valeurs », donc « supérieur au minimum ».
• ALL compare l’élément à tous ceux ramenés par la sous-interrogation. L’opérateur «
signifie « inférieur au minimum » et « >ALL » signifie « supérieur au maximum ».
Le tableau suivant détaille quelques sous-interrogations multilignes. Le dernier exemple
programme une partie d’une jointure externe.
La directive NOT IN doit être utilisée avec prudence car elle retourne faux si un membre
ramené par la sous-interrogation est NULL.
Tableau 4-41 Sous-interrogations multilignes
Opérateur
Besoin
Requête
IN
R2. Coordonnées des compagnies
qui embauchent des pilotes de
moins de 500 heures de vol.
SELECT nomComp, nrue, rue, ville
FROM Compagnie
WHERE comp
(
;
= et IN
R4. Somme des heures de vol des
pilotes placés sous la responsabilité
des chefs pilotes de la compagnie
de nom 'Air France'.
SELECT SUM(nbHVol) FROM Pilote
WHERE chefPil
(
);
NOT IN
Compagnies n’ayant pas de pilote. SELECT nomComp, nrue, rue, ville
FROM Compagnie
WHERE comp
;
Web
IN
SELECT compa FROM Pilote
WHERE nbHVol < 500)
IN
SELECT brevet FROM Pilote
WHERE compa =
(SELECT comp FROM Compagnie
WHERE nomComp = 'Air France')
NOT IN
(SELECT compa FROM Pilote
WHERE compa IS NOT NULL)
SQL de base
134
© Éditions Eyrolles
Sous-interrogations multilignes (IN, ALL et ANY)
Les opérateurs multilignes sont les suivants :
• IN compare un élément à une donnée quelconque d’une liste ramenée par la sous-interrogation. Cet opérateur est utilisé pour les équijointures et les autojointures (et les intersections). L’opérateur NOT IN sera employé pour les jointures externes (et les différences).
• ANY compare l’élément à chaque donnée ramenée par la sous-interrogation. L’opérateur
« =ANY » équivaut à IN. L’opérateur «
moins une des valeurs », donc « supérieur au minimum ».
• ALL compare l’élément à tous ceux ramenés par la sous-interrogation. L’opérateur «
Le tableau suivant détaille quelques sous-interrogations multilignes. Le dernier exemple
programme une partie d’une jointure externe.
La directive NOT IN doit être utilisée avec prudence car elle retourne faux si un membre
ramené par la sous-interrogation est NULL.
Tableau 4-41 Sous-interrogations multilignes
Opérateur
Besoin
Requête
IN
R2. Coordonnées des compagnies
qui embauchent des pilotes de
moins de 500 heures de vol.
SELECT nomComp, nrue, rue, ville
FROM Compagnie
WHERE comp
(
;
= et IN
R4. Somme des heures de vol des
pilotes placés sous la responsabilité
des chefs pilotes de la compagnie
de nom 'Air France'.
SELECT SUM(nbHVol) FROM Pilote
WHERE chefPil
(
);
NOT IN
Compagnies n’ayant pas de pilote. SELECT nomComp, nrue, rue, ville
FROM Compagnie
WHERE comp
;
Web
IN
SELECT compa FROM Pilote
WHERE nbHVol < 500)
IN
SELECT brevet FROM Pilote
WHERE compa =
(SELECT comp FROM Compagnie
WHERE nomComp = 'Air France')
NOT IN
(SELECT compa FROM Pilote
WHERE compa IS NOT NULL)
