Les opérations ensemblistes |
Les opérations ensemblistes en SQL, sont ceux définis dans l'algèbre relationnelle. Elles sont réalisées grâce aux opérateurs:
L'opérateur UNION |
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.
L'opérateur INTERSECT |
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 )
L'opérateur EXCEPT |
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 seconde table n'appartenant pas à la première (les deux tables devant avoir le même schéma).
SELECT a,b FROM table1 WHERE ------ INTERSECT 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 )