94
Chapitre 5 • Le langage SQL DML
from
CLIENT
where not exists (select * from COMMANDE
where NCLI = CLIENT.NCLI)
Il en résulterait la table suivante. On notera, sans surprise, que certains clients apparaissent plus d’une fois, selon le nombre de commandes qu’ils ont passées.
c) Les opérateurs ensemblistes
Le fonctionnement de l’opérateur union est un peu particulier. En effet, il produit
un ensemble de lignes, c’est à dire une collection de lignes distinctes. Si une même
ligne apparaît dans le résultat de chacun des membres de l’union, cette ligne n’apparaîtra qu’une seule fois dans l’union. Plus curieux : si le résultat d’un des membres
contient une ligne en plusieurs exemplaires, ce qui peut arriver si aucun identifiant
n’est repris dans la clause select, un seul exemplaire apparaîtra dans l’union. À
titre d’illustration, on comparera la requête :
select LOCALITE from CLIENT where CAT = 'C1'
avec la suivante, qui lui ajoute un élément :
NCOM
NCLI
DATECOM
NOM
LOCALITE
30178
30179
30182
30184
30185
30186
30188
-K111
C400
S127
C400
F011
C400
B512
B062
B112
B332
C003
C123
D063
F010
F400
K729
L422
S712
21/12/2005
22/12/2005
23/12/2005
23/12/2005
2/01/2006
2/01/2006
3/01/2006
-VANBIST
FERARD
VANDERKA
FERARD
PONCELET
FERARD
GILLET
GOFFIN
HANSENNE
MONTI
AVRON
MERCIER
MERCIER
TOUSSAINT
JACOB
NEUMAN
FRANCK
GUILLAUME
Lille
Poitiers
Namur
Poitiers
Toulouse
Poitiers
Toulouse
Namur
Poitiers
Genève
Toulouse
Namur
Toulouse
Poitiers
Bruxelles
Toulouse
Namur
Paris
LOCALITE
Poitiers
Namur
Poitiers
Namur
Nalur
Chapitre 5 • Le langage SQL DML
from
CLIENT
where not exists (select * from COMMANDE
where NCLI = CLIENT.NCLI)
Il en résulterait la table suivante. On notera, sans surprise, que certains clients apparaissent plus d’une fois, selon le nombre de commandes qu’ils ont passées.
c) Les opérateurs ensemblistes
Le fonctionnement de l’opérateur union est un peu particulier. En effet, il produit
un ensemble de lignes, c’est à dire une collection de lignes distinctes. Si une même
ligne apparaît dans le résultat de chacun des membres de l’union, cette ligne n’apparaîtra qu’une seule fois dans l’union. Plus curieux : si le résultat d’un des membres
contient une ligne en plusieurs exemplaires, ce qui peut arriver si aucun identifiant
n’est repris dans la clause select, un seul exemplaire apparaîtra dans l’union. À
titre d’illustration, on comparera la requête :
select LOCALITE from CLIENT where CAT = 'C1'
avec la suivante, qui lui ajoute un élément :
NCOM
NCLI
DATECOM
NOM
LOCALITE
30178
30179
30182
30184
30185
30186
30188
-K111
C400
S127
C400
F011
C400
B512
B062
B112
B332
C003
C123
D063
F010
F400
K729
L422
S712
21/12/2005
22/12/2005
23/12/2005
23/12/2005
2/01/2006
2/01/2006
3/01/2006
-VANBIST
FERARD
VANDERKA
FERARD
PONCELET
FERARD
GILLET
GOFFIN
HANSENNE
MONTI
AVRON
MERCIER
MERCIER
TOUSSAINT
JACOB
NEUMAN
FRANCK
GUILLAUME
Lille
Poitiers
Namur
Poitiers
Toulouse
Poitiers
Toulouse
Namur
Poitiers
Genève
Toulouse
Namur
Toulouse
Poitiers
Bruxelles
Toulouse
Namur
Paris
LOCALITE
Poitiers
Namur
Poitiers
Namur
Nalur
