Vous êtes ici : Accueil > Archives > Tutoriels > SQL standard > Manipulation de données : opérateurs

< Retour

Manipulation de données : opérateurs

mise à jour : 09.08.2005

Attention, avertissement ! Attention ! à ma connaissance, les opérateurs ensemblistes ne sont pas à l'heure actuelle pris en charge par MySQL. Cette partie concerne plutôt les SGBDR commerciaux, type Access, SQL Server...


III.1 > Union, Intersection & Différence

> Les opérateurs ensemblistes permettent de combiner les résultats retournés par deux interrogations. Toutes les colonnes à retourner doivent être les mêmes dans leur types et leur nombres.
syntaxe :

SELECT ... FROM ...
{ UNION | INTERSECT | MINUS }
SELECT ... FROM ...


> Il y a un DISTINCT implicite qui élimine les doublons.
> Si il y a une clause ORDER BY, il faut faire référence au numéro de la colonne et non à son nom !
exemple partiel :

SELECT prenom, nom FROM personnes ORDER BY 2;
# pour trier sur la colonne 'nom' sans la citer...


> la clause UNION ramène les lignes du premier SELECT plus celles du deuxième SELECT moins les doublons (lignes communes aux deux SELECT).

> la clause INTERSECT retourne les lignes communes aux 2 résultats.

> la clause MINUS ramène les lignes présente dans le premier résultat et pas dans le second...


> Bonne nouvelle : pour celles et ceux qui sont un peu rebutté(e)s par cette syntaxe, qui est compliquée et lourde à mettre en oeuvre, sachez qu'il est possible de contourner les opérateurs ensemblistes à l'aide d'une requête « SELECT ... FROM ... WHERE colonne [NOT] IN ( SELECT ... FROM ... WHERE ... ); » et d'un peu de réflexion...

>> Les sous-interrogations.