Les opérations ensemblistes en SQL, sont celles définies dans l'algèbre
relationnelle. Elles sont réalisées grâce aux opérateurs:
- UNION
- INTERSECT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans tous les SGBD)
- EXCEPT (ne fait pas partie de la norme SQL et n'est donc pas implémenté dans tous les SGBD)
Ces opérateurs s'utilisent entre deux clauses SELECT.
Cet opérateur permet d'effectuer une UNION des tuples sélectionnés par
deux clauses SELECT (les deux tables sur lesquelles on travaille devant avoir le même
schéma).
SELECT ---- FROM ---- WHERE ------
UNION
SELECT ---- FROM ---- WHERE ------
Par défaut les doublons sont automatiquement éliminés. Pour conserver
les doublons, il est possible d'utiliser une clause UNION ALL.
Cet opérateur permet d'effectuer une INTERSECTION des tuples sélectionnés par
deux clauses SELECT (les deux tables sur lesquelles on travaille devant avoir le même
schéma).
SELECT ---- FROM ---- WHERE ------
INTERSECT
SELECT ---- FROM ---- WHERE ------
L'opérateur INTERSECT n'étant pas implémenté dans tous les SGBD, il est possible
de le remplacer par des commandes usuelles:
SELECT a,b FROM table1
WHERE EXISTS ( SELECT c,d FROM table2
WHERE a=c AND b=d )
Cet opérateur permet d'effectuer une DIFFERENCE entre les tuples sélectionnés par
deux clauses SELECT, c'est-à-dire sélectionner les tuples de la première table
n'appartenant pas à la seconde (les deux tables devant avoir le même
schéma).
SELECT a,b FROM table1 WHERE ------
EXCEPT
SELECT c,d FROM table2 WHERE ------
L'opérateur EXCEPT n'étant pas implémenté dans tous les SGBD, il est possible
de le remplacer par des commandes usuelles:
SELECT a,b FROM table1
WHERE NOT EXISTS ( SELECT c,d FROM table2
WHERE a=c AND b=d )
|