Pour un meilleur contrôle des filtres, DB2 SQL vous permet de spécifier plusieurs clauses WHERE.
Opérateur : un mot-clé spécial utilisé pour joindre ou modifier des clauses dans une clause WHERE. Ceci est également connu sous le nom d’opérateurs logiques.
Les opérateurs AND (et) et OR (ou) sont utilisés pour filtrer les enregistrements en fonction de plusieurs conditions.
- L’opérateur AND affiche un enregistrement si toutes les conditions séparées par AND sont TRUE (VRAIE).
- L’opérateur OR affiche un enregistrement si l’une des conditions séparées par OR est TRUE (VRAIE).
L’opérateur NOT affiche un enregistrement si la ou les conditions sont NOT TRUE (FAUX).
Syntaxe:
SELECT colonne1, colonne2, ...
FROM nom_table
WHERE condition1 AND/OR condition2 AND/OR condition3 ...;
Base de données DB2 :
Vous trouverez ci-dessous une sélection de la table “Product” de la base de données DB2.
ID-Produit | Nom -Produit | Categorie | Prix | Stock | Valeur-Totale |
---|---|---|---|---|---|
7001 | Souris | Accessoires | 75,00 | ||
7002 | Disque dur | 65,00 | 20 | 1 300 | |
7003 | Clavier | Accessoires | 36.00 | 33 | 1 118,00 |
7004 | RAM | Composants | 23.50 | 16 | 376,00 |
7005 | Roue | vélos | 1 200 | ||
7006 | Stylo | 7.45 | 10 | 74,50 | |
7007 | Tapis de souris | Accessoires | 5,00 |
Exemple 1 : Utilisation de l’opérateur AND :
Pour filtrer sur plusieurs colonnes, nous utilisons l’opérateur AND pour ajouter des conditions à notre clause WHERE. Il s’agit d’un mot clé utilisé dans une clause WHERE pour spécifier que seules les lignes correspondant à toutes les conditions spécifiées doivent être extraites. “AND” indique au DB2 de renvoyer uniquement les lignes qui remplissent toutes les conditions spécifiées.
SELECT ID-Produit, Nom-Produit, Prix
FROM Produit
WHERE Categorie = 'Accessoires' AND Prix > 10 ;
Cette instruction SQL récupère les ProductId, ProductName et Price pour tous les produits de la catégorie ‘Accessoires’ et le prix est supérieur à 10.
La clause WHERE de cette instruction SELECT est composée de deux conditions et le mot-clé AND est utilisé pour les joindre.
Résultat:
ID-Produit | Nom du produit | Prix |
---|---|---|
7001 | Souris | 75,00 |
7003 | Clavier | 36.00 |
Exemple 2 : Utilisation de l’opérateur OR
L’opérateur OR est exactement le contraire de AND.
L’opérateur OR demande au DB2 d’extraire les lignes qui correspondent à une condition ou aux deux.
SELECT Produit, Nom-Produit, Prix
FROM Produit
WHERE Categorie = 'Accessoires' OR Prix > 10 ;
Cette instruction SQL récupère ProductId, ProductName et Price pour tous les produits de Category = ‘Accessories’ ou Price > 10
Résultat:
ID-Produit | Nom-Produit | Prix |
---|---|---|
7001 | Souris | 75,00 |
7003 | Clavier | 36.00 |
7007 | Tapis de souris | 5,00 |
Ordre d’évaluation :
Les clauses WHERE peuvent contenir n’importe quel nombre d’opérateurs AND et OR.
SQL traite les opérateurs AND avant les opérateurs OR.
Exemple 3 :
Pour obtenir une liste de tous les ID-Produit pour la catégorie ‘Accessoires’ et ‘Composants’ avec un prix de 10 ou plus.
SELECT ID-Produit
FROM Produit
WHERE (Categorie = 'Accessories' OR Categorie = 'Composants') AND Prix >= 10;
Si vous n’utilisez pas de parenthèses, vous n’obtiendrez pas la sortie souhaitée.
Chaque fois que vous écrivez des clauses WHERE qui utilisent à la fois les opérateurs AND et OR, utilisez des parenthèses pour regrouper explicitement les opérateurs.
Résultat:
ID-Produit |
---|
7001 |
7003 |
7004 |
Exemple 4 : Utilisation de l’opérateur NOT
L’instruction SQL suivante sélectionne tous les champs de “Produit” où Catégorie n’est PAS “Accessoires”.
SELECT * FROM Produit
WHERE NOT Categorie = 'Accessoires';
Résultat:
ID-Produit | Nom-Produit | Categorie | Prix | Stock | Valeur-Totale |
---|---|---|---|---|---|
7002 | Disque dur | 65,00 | 20 | 1 300 | |
7004 | RAM | Composants | 23.50 | 16 | 376,00 |
7005 | Roue | vélos | 1 200 | ||
7006 | Stylo | 7.45 | 10 | 74,50 |