Sous-requête d'existence EXISTS
Introduction
Cette sous-requête permet de vérifier que la sous-requête contient au moins un tuple.
Syntaxe :
1
SELECT <projections>2
FROM <relations>3
WHERE EXISTS 4
(<requête imbriquée>)
La requête imbriquée faisant référence à des propriétés (éventuellement non projetées) de la requête principale.
Exemple :
1
SELECT Chercheur.Nom
2
FROM Chercheur3
WHERE EXISTS4
(SELECT * 5
FROM Universite 6
WHERE Universite.Nom=Chercheur.Universite)
Remarque : Projection dans la sous-requête
Puisque la sous-requête n'est destinée qu'à valider l'existence d'un tuple, il est inutile de procéder à une projection particulière pour cette sous-requête. On utilise donc en général la clause SELECT * pour une sous-requête avec une clause EXISTS.
Remarque : NOT EXISTS
On peut tester la non présence de tuple dans la sous-requête en utilisant la clause NOT EXISTS à la place de la clause EXISTS.