Dans cette fiche... |
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).
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.
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;
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.