Lolokai – Supervision, systèmes, réseaux, base de données…

0

Les opérateurs d’ensemble en SQL

Said ASSOUMANI 17 octobre 2012

Introduction

Aujourd’hui nous allons voir ensemble quatre opérateurs intéressants :  UNION ALL, UNION  , INTERSECT et MINUS. On les appelle communément les opérateurs d’ensemble (théorie des ensembles en mathématiques). Ces opérateurs sont utilisés principalement avec un groupe de deux  tables (deux requêtes select). Vous allez voir que les notions que nous allons voir sont  assez facile à comprendre.

Script création de notre environnement

Create table t1 (letter char(1) ) ;
Insert into  t1 values('A') ;
Insert into  t1 values('B') ;
Insert into  t1 values('C') ;
Insert into  t1 values('D') ;
Insert into  t1 values('E') ;
commit ;
Create table t2 (letter char(1) ) ;
Insert into  t2 values('D') ;
Insert into  t2 values('E') ;
Insert into  t2 values('F') ;
Insert into  t2 values('G') ;
Insert into  t2 values('H') ;
commit ;

Union All

L’operateur « UNION ALL » va nous renvoyer toutes les informations contenues dans le groupe 1 (notre première requête) et toutes les informations contenues dans le groupe 2 (deuxième requête), même si on a des doublons.

Exemple :

SELECT * FROM t1
UNION ALL
SELECT * FROM t2 ;

Résultat obtenu : A , B , C , D , E , D , E , F , G , H

Union

L’operateur « UNION » va nous renvoyer toutes les informations contenues dans le groupe 1 (notre première requête) et toutes les informations contenues dans le groupe 2 (deuxième requête) , cette fois on aura pas de doublons.

SELECT * FROM t1
UNION
SELECT * FROM t2 ;

Resultat obtenu : A , B , C , D , E , F , G , H

Intersect

L’operateur « INTERSECT» va nous renvoyer toutes les informations qui sont à la fois dans le groupe 1 (notre première requête) et dans le groupe 2 (deuxième requête), on aura donc les informations communes à ces deux groupes.

SELECT * FROM t1
INTERSECT
SELECT * FROM t2 ;

Resultat obtenu : D , E

Minus

Dans les trois operateusr précédents, l’ordre du groupe n’a  pas d’importance que l’on fait

SELECT * FROM t1 UNION|UNION_ALL|INTERSECT  SELECT * FROM t2 ;

Ou

SELECT * FROM t2 UNION|UNION_ALL|INTERSECT  SELECT * FROM t3 ;

On aura les mêmes données.

Pour l’operateur « MINUS » ce n’est pas le cas. En effet, ici on va nous renvoyer toutes les informations qui sont dans le groupe 1 (notre première requête) et pas dans le groupe 2 (deuxième requête), il agit un peu comme une soustraction.

Exemple

SELECT * FROM t1
MINUS
SELECT * FROM t2 ;

Resultat obtenu : A , B , C

Exemple

SELECT * FROM t2
MINUS
SELECT * FROM t1 ;

Resultat obtenu : F , G , H

Conclusion

Voilà pour ce qui en est des opérateurs d’ensemble (Set Operators). Nous avons vu ensemble ce qu’ils font et comment les utiliser. Si vous avez des questions sur le sujets n’hésitez pas à laisser un commentaire .Said ASSOUMANI

Tagged with: , , , ,

Laisser un commentaire

Login to your account

Can't remember your Password ?

Register for this site!