5.2 Consultation et extraction de données dans une table
71
© Dunod – La photocopie non autorisée est un délit.
toute valeur de ADRESSE contenant le mot " Neuve". Un petit problème se pose :
comment rechercher les caractères % et _ dans les données ? Il suffit de les préfixer
dans le masque par un caractère spécial qu’on définit dans une clause escape. Dans
l’exemple ci-dessous, on recherche la présence de la chaîne '_CHENE' dans les
valeurs de LIBELLE:
LIBELLE like '%$_CHENE%' escape '$'
Un masque peut aussi s’appliquer à une date. La forme suivante retient les dates de
commande tombant en 2005
DATECOM like '%2005%'
Cette condition admet une forme négative, dont l’interprétation est évidente :
ADRESSE not like '%Neuve%'
Note
L’effet d’une condition like portant sur le dernier caractère d’une valeur dépend du
type char ou varchar de cette valeur. Une colonne de type char(n) contient des
valeurs composées de n caractères exactement. Si la valeur qu’on y range comporte
moins de n caractères, ceux-ci sont considérés comme étant complétés par des
espaces. Donc, la condition CAT like '_1' reconnaîtra 'B1 si CAT est déclarée
char(2) mais pas si on l’avait déclarée char(3). Le type varchar(n) définit des
valeurs dont la longueur est le nombre de caractères effectivement introduits (à
concurrence de n). Cette condition se comporterait donc selon l’intuition si CAT
avait été déclarée varchar(3).
b) Expressions composées
La condition de sélection introduite par la clause where peut être constituée d’une
expression booléenne de conditions élémentaires (opérateurs and, or, not et parenthèses). La requête suivante retient les lignes pour lesquelles, simultanément (and),
LOCALITE a pour valeur 'Toulouse' et COMPTE a une valeur négative.
select NOM, ADRESSE, COMPTE
from
CLIENT
where LOCALITE = 'Toulouse' and COMPTE < 0
Etant donné les conditions P et Q relatives aux lignes de la table T, la clause
• where P and Q
sélectionne les lignes de T qui vérifient simultanément P
et Q;
• where P or Q
sélectionne les lignes de T qui vérifient P ou Q ou les
deux;
• where not P
sélectionne les lignes de T qui ne vérifient pas P.
Précédent

- 71/436

Suivant