Partie I
SQL de base
138
© Éditions Eyrolles
ment extrait par la requête de niveau supérieur. Cette technique peut être aussi utilisée dans les
ordres UPDATE et DELETE. La forme générale d’une sous-interrogation synchronisée est la
suivante. Les alias des tables sont utiles pour pouvoir manipuler des colonnes de tables de
différents niveaux.
Une sous-interrogation synchronisée peut ramener une ou plusieurs lignes. Différents opérateurs peuvent être employés (=, >, <, >=, <=, EXISTS).
Opérateur mathématique
Le tableau suivant détaille un exemple d’opérateur mathématique appliqué à une sous-interrogation synchronisée :
Opérateur EXISTS
L’opérateur EXISTS permet d’interrompre la sous-interrogation dès le premier enregistrement
trouvé. La valeur FALSE est retournée si aucun enregistrement n’est extrait par la sous-interrogation.
SELECT alias1.c
FROM nomTable1 alias1
WHERE colonne(s) opérateur (SELECT alias2 .z…
FROM nomTable2 alias2
WHERE alias1 .x opérateur alias2.y )
[AND ( conditionsTable1 )];
Tableau 4-44 Sous-interrogation synchronisée
Besoin
Requête et résultat
R15. Avions dont le nombre d’heures de
vol est supérieur au nombre d’heures de
vol moyen des avions de leur compagnie
(ici 700 heures pour 'AF' et 1115 heures
pour 'SING').
SELECT avi1.* FROM Avion avi1
WHERE avi1.nbHVol
;
+-------+--------+---------+-------+
| immat | typeAv | nbHVol | compa |
+-------+--------+---------+-------+
| A1
| A320
| 1000.00 | AF
|
| A2
| A330
| 1500.00 | AF
|
| A4
| A340
| 1800.00 | SING |
+-------+--------+---------+-------+
>
(SELECT AVG(avi2.nbHVol) FROM Avion avi2
WHERE avi2.compa = avi1.compa)
SQL de base
138
© Éditions Eyrolles
ment extrait par la requête de niveau supérieur. Cette technique peut être aussi utilisée dans les
ordres UPDATE et DELETE. La forme générale d’une sous-interrogation synchronisée est la
suivante. Les alias des tables sont utiles pour pouvoir manipuler des colonnes de tables de
différents niveaux.
Une sous-interrogation synchronisée peut ramener une ou plusieurs lignes. Différents opérateurs peuvent être employés (=, >, <, >=, <=, EXISTS).
Opérateur mathématique
Le tableau suivant détaille un exemple d’opérateur mathématique appliqué à une sous-interrogation synchronisée :
Opérateur EXISTS
L’opérateur EXISTS permet d’interrompre la sous-interrogation dès le premier enregistrement
trouvé. La valeur FALSE est retournée si aucun enregistrement n’est extrait par la sous-interrogation.
SELECT alias1.c
FROM nomTable1 alias1
WHERE colonne(s) opérateur (SELECT alias2 .z…
FROM nomTable2 alias2
WHERE alias1 .x opérateur alias2.y )
[AND ( conditionsTable1 )];
Tableau 4-44 Sous-interrogation synchronisée
Besoin
Requête et résultat
R15. Avions dont le nombre d’heures de
vol est supérieur au nombre d’heures de
vol moyen des avions de leur compagnie
(ici 700 heures pour 'AF' et 1115 heures
pour 'SING').
SELECT avi1.* FROM Avion avi1
WHERE avi1.nbHVol
;
+-------+--------+---------+-------+
| immat | typeAv | nbHVol | compa |
+-------+--------+---------+-------+
| A1
| A320
| 1000.00 | AF
|
| A2
| A330
| 1500.00 | AF
|
| A4
| A340
| 1800.00 | SING |
+-------+--------+---------+-------+
>
(SELECT AVG(avi2.nbHVol) FROM Avion avi2
WHERE avi2.compa = avi1.compa)
