Manipulation de données : opérateurs
mise à jour : 09.08.2005
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;
> 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.