Une requête SQL peut être restreinte à l’aide de la condition WHERE. Les opérateurs logiques AND et OR peuvent être utilisées au sein de la commande WHERE pour combiner des conditions.
Syntaxe d’utilisation des opérateurs AND et OR
Les opérateurs sont à ajoutés dans la condition WHERE. Ils peuvent être combinés à l’infini pour filtrer les données comme souhaités.
L’opérateur AND permet de s’assurer que la condition1 ET la condition2 sont vrai :
SELECT nom_colonnes FROM nom_table WHERE condition1 AND condition2
L’opérateur OR vérifie quant à lui que la condition1 OU la condition2 est vrai :
SELECT nom_colonnes FROM nom_table WHERE condition1 OR condition2
Ces opérateurs peuvent être combinés à l’infini et mélangés. L’exemple ci-dessous filtre les résultats de la table “nom_table” si condition1 ET condition2 OU condition3 est vrai :
SELECT nom_colonnes FROM nom_table WHERE condition1 AND (condition2 OR condition3)
Attention : il faut penser à utiliser des parenthèses lorsque c’est nécessaire. Cela permet d’éviter les erreurs car et ça améliore la lecture d’une requête par un humain.
Exemple de données
Pour illustrer les prochaines commandes, nous allons considérer la table “produit” suivante :
id | nom | categorie | stock | prix |
---|---|---|---|---|
1 | ordinateur | informatique | 5 | 950 |
2 | clavier | informatique | 32 | 35 |
3 | souris | informatique | 16 | 30 |
4 | crayon | fourniture | 147 | 2 |
Opérateur AND
L’opérateur AND permet de joindre plusieurs conditions dans une requête. En gardant la même table que précédemment, pour filtrer uniquement les produits informatique qui sont presque en rupture de stock (moins de 20 produits disponible) il faut exécuter la requête suivante :
SELECT * FROM produit WHERE categorie = 'informatique' AND stock < 20
Cette requête retourne les résultats suivants :
id | nom | categorie | stock | prix |
---|---|---|---|---|
1 | ordinateur | informatique | 5 | 950 |
3 | souris | informatique | 16 | 30 |
Opérateur OR
Pour filtrer les données pour avoir uniquement les données sur les produits “ordinateur” ou “clavier” il faut effectuer la recherche suivante :
SELECT * FROM produit WHERE nom = 'ordinateur' OR nom = 'clavier'
Cette simple requête retourne les résultats suivants:
id | nom | categorie | stock | prix |
---|---|---|---|---|
1 | ordinateur | informatique | 5 | 950 |
2 | clavier | informatique | 32 | 35 |
Combiner AND et OR
Il ne faut pas oublier que les opérateurs peuvent être combinés pour effectuer de puissantes recherche. Il est possible de filtrer les produits “informatique” avec un stock inférieur à 20 et les produits “fourniture” avec un stock inférieur à 200 avec la recherche suivante :
SELECT * FROM produit WHERE ( categorie = 'informatique' AND stock < 20 ) OR ( categorie = 'fourniture' AND stock < 200 )
Cela permet de retourner les 3 résultats suivants :
id | nom | categorie | stock | prix |
---|---|---|---|---|
1 | ordinateur | informatique | 5 | 950 |
2 | souris | informatique | 16 | 30 |
4 | crayon | fourniture | 147 | 2 |