Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

SQL - Opérations ensemblistes

SQL - Les opérations ensemblistes Encyclopédie


Les opérations ensemblistes

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.

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 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 )

Discussions pertinentes trouvées dans le forum

23/11 14h41 sql calculer total [SQL] comment calculer un total ? Développement 25/11 18h58->Riwalenn24
17/12 14h24 compter points tableau php sql Compter les points dans un tableau en PHP/SQL Webmastering 21/12 16h48->sweetmemories16
30/10 13h34 sql server import export donnees [MS SQL Server] import /export de donnees Windows 31/10 14h57->sebsauvage14
04/07 16h47 requete sql aide requete SQL Développement 05/07 15h26->antic8013
01/09 21h49 php requette sql [PHP] problème de requette SQL Webmastering 02/09 16h07->boss021112
01/09 16h50 nb enregistrement sql Nb d'enregistrement sql Développement 02/09 01h16->kinder.surprise10
01/03 08h43 sql mot clef pb sql : recherche par mot clef Développement 01/03 10h42->g_ni9
06/07 16h40 sql server vb.net detail sql server et vb.net en detail Développement 25/07 18h06->chaicoo49
06/09 11h39 sql % [SQL] % ne fonctionne pas !? Développement 07/09 14h16->Riwalenn9
01/03 09h45 sql lire champs uns autres [SQL] Lire champs les uns apres les autres Webmastering 02/03 08h13->Yann9
Discussion fermée Problème résolu SQL Plus de discussions sur « SQL »

Ce document intitulé « SQL - Opérations ensemblistes » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.