SQL AND & OR

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 :

idnomcategoriestockprix
1ordinateurinformatique5950
2clavierinformatique3235
3sourisinformatique1630
4crayonfourniture1472

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 :

idnomcategoriestockprix
1ordinateurinformatique5950
3sourisinformatique1630

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:

idnomcategoriestockprix
1ordinateurinformatique5950
2clavierinformatique3235

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 :

idnomcategoriestockprix
1ordinateurinformatique5950
2sourisinformatique1630
4crayonfourniture1472

Cours recommandés

Partager