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).
Attention
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.
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;
Explications
|
| Cette commande sélectionne tous les clients dont le CA est supérieur à
100000. Tous les champs de la table Clients sont affichés. Le critère étant numérique, aucun guillemet n'est nécessaire. |
|
| Cette commande sélectionne tous les clients dont le CA est supérieur à
100000. Seuls 3 champs de la table Clients sont affichés (3 colonnes, donc). |
|
| Cette commande sélectionne tous les produits de la catégorie Hifi. La catégorie est un champ Texte, d'où les guillemets. |
|
| 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). |
|
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. |
|
| Cette commande définit un prix de 100 pour tous les produits qui
valent actuellement 99.50. Les autres produits ne sont bien sûr pas modifiés. |
|
| 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. |



Dans cet article...
Article mis à jour le 10/02/2005