Dans cette fiche...

<Retour SQL>

Début de page La clause WHERE

La clause WHERE n'est jamais utilisée seule : elle complète les instructions comme SELECT, DELETE, UPDATE..., et sert à filtrer les données.
Le WHERE correspond à la partie Critères d'une requête classique. La syntaxe et les signes autorisés s'en inspirent donc. Consultez la fiche Filtrer dans une requête pour vous rafraîchir les idées :o).

icoAttentionSmall.gif (1931 octets)Si vous souhaitez tester les exemples ci-dessous, faites peut-être une copie de votre base au préalable, dans la mesure où les données vont être modifiées de façon irréversible.

Consultez la fiche Taper et tester du code SQL avant de lire ce qui suit.

Début de page Syntaxe

Si votre base de données comporte 2 tables nommées tblClients et tblProduits :

 SELECT
SELECT * FROM tblClients WHERE CA > 100000;
SELECT [Numéro Client],[Nom Client],CA WHERE CA > 100000;
SELECT * FROM tblProduits WHERE Catégorie="Hifi";
SELECT * FROM tblClients WHERE Prospect = NO;
SELECT * FROM tblClients WHERE [Code postal] LIKE "01*";
 DELETE
DELETE FROM tblProduits WHERE [Date de consommation] < #08/31/1999#;
 UPDATE
UPDATE tblProduits SET Prix = 100 WHERE Prix = 99.50;
UPDATE tblProduits SET Prix = Prix * 1.05 WHERE Catégorie="HiFi" AND Prix<2000;

Début de page Explications

SELECT * FROM tblClients WHERE CA > 100000;
Cette commande sélectionne tous les clients dont le CA est supérieur à 100000 F.
Tous les champs de la table Clients sont affichés.

Le critère étant numérique, aucun guillemet n'est nécessaire.

 
SELECT [Numéro Client],[Nom Client],CA WHERE CA > 100000;
Cette commande sélectionne tous les clients dont le CA est supérieur à 100000 F.
Seuls 3 champs de la table Clients sont affichés (3 colonnes, donc).
 
SELECT * FROM tblProduits WHERE Catégorie="Hifi";
Cette commande sélectionne tous les produits de la catégorie Hifi.
La catégorie est un champ Texte, d'où les guillemets.
 
SELECT * FROM tblClients WHERE Prospect = NO;
Cette commande sélectionne tous les clients confirmés (ceux qui ne sont pas prospects).
On suppose ici que le champ Prospect est de type Oui/Non (soit Yes/No en SQL).
 
SELECT * FROM tblClients WHERE [Code postal] LIKE "01*";
Un cas souvent pratique : on sélectionne tous les clients donc le code postal ressemble (LIKE) à "01quelquechose". En clair, tous les clients de l'Ain.
 
DELETE FROM tblProduits WHERE [Date de consommation] < #08/31/1999#;
Cette commande détruit tous les produits dont la date de consommation est antérieure au 31/08/1999.
Notez le format anglo-saxon de la date.
 
UPDATE tblProduits SET Prix = 100 WHERE Prix = 99.50;
Cette commande définit un prix de 100 F pour tous les produits qui valent actuellement 99.50.
Les autres produits ne sont bien sûr pas modifiés.
 
UPDATE tblProduits SET Prix = Prix * 1.05 WHERE Catégorie="HiFi" AND Prix<2000;
Tous les produits de la catégorie Hifi et dont le prix est inférieur à 2000 sont augmentés de 5%.
A noter qu'on peut utiliser les mots-clefs AND (ET) et OR (OU) pour combiner les critères dans une clause Where.
 

Quelques autres variantes sont encore possibles : vous les trouverez si nécessaire dans l'aide en ligne d'Access.