Temps de lecture approximative : 8 minutes

Commandes SQL AND et OR

Nous l'avons vu dans le chapitre précédent consacré à la commande WHERE, il est possible de filtrer les résultats d'une requête en fonction d'une condition. Les opérateurs logiques AND et OR peuvent être utilisés en complément de la commande WHERE pour combiner des conditions. L’utilisation la plus basique de cette commande s’effectue de la manière suivante :

SQL
SELECT une_colonne FROM une_table WHERE une_condition AND une_autre_condition;
SQL
SELECT une_colonne FROM une_table WHERE une_condition OR encore_condition;

Afin de mettre en évidence l'utilisation des commandes AND et OR, et de comprendre rapidement comment ces dernières fonctionnent, nous utiliserons la table clients qui contient les colonnes et données suivantes pour nos différents exemples. Cette dernière simule la table qui contient les clients d'une entreprise quelconque.

Table : clients
id prenom nom email ville commandes
1 Marine Leroy mleroy@example.com Paris 3
2 Jean René jrene@example.com Lyon 1
3 Ted Bundy tbundy@example.com Lyon 2
4 Paul Bismuth pbismuth@example.com Paris NULL
5 Caroline Rodriguez crodriguez@example.com Berlin 2

Opérateur logique AND

En SQL, l'opérateur logique AND permet de conditionner l'affichage d'une requête en fonction de plusieurs conditions. Il s'utilise comme un ET. L'opérateur logique AND ne peut être utilisé sans la commande WHERE. Sans plus attendre, un exemple concret. Nous souhaitons rechercher dans la table, les clients qui ont commandé et qui sont dans la ville de Paris.

SQL
SELECT * FROM clients WHERE ville = 'Paris' AND commandes IS NOT NULL;
Résultat
id prenom nom email ville commandes
1 Marine Leroy mleroy@example.com Paris 3

On peut utiliser autant d'opérateurs logiques AND que l'on souhaite. On peut donc effectuer également ce genre de requête.

SQL
SELECT * FROM clients WHERE ville = 'Lyon' AND ville = 'Berlin' AND commandes > 1;
Résultat
id prenom nom email ville commandes
3 Ted Bundy tbundy@example.com Lyon 2
5 Caroline Rodriguez crodriguez@example.com Berlin 2

Opérateur logique OR

En SQL, l'opérateur logique OR permet de conditionner l'affichage d'une requête en fonction de plusieurs conditions. Il s'utilise comme un OU. L'opérateur logique OR ne peut être utilisé sans la commande WHERE. Sans plus attendre, un exemple concret. Nous souhaitons rechercher dans la table, les clients qui n'ont pas commandé ou qui habitent dans la ville de Berlin.

SQL
SELECT * FROM clients WHERE ville = 'Berlin' OR commandes IS NULL;
Résultat
id prenom nom email ville commandes
4 Paul Bismuth pbismuth@example.com Paris NULL
5 Caroline Rodriguez crodriguez@example.com Berlin 2

Tout comme l'opérateur AND, on peut utiliser autant d'opérateurs logiques OR que l'on souhaite, il n'y a pas de restrictions.

Combiner AND et OR

En SQL, il est tout à fait enviseagable de construire des requêtes complexes qui combinent les opérateurs logiques AND et OR. En reprenant la table clients, imaginons que l'on souhaite obtenir les clients de Paris qui ont commandé, et les clients de Lyon qui ont commandé plus d'une fois.

SQL
SELECT * FROM clients WHERE (ville = 'Lyon' AND commandes > 1) OR (ville = 'Paris' AND commandes IS NOT NULL);
Résultat
id prenom nom email ville commandes
1 Marine Leroy mleroy@example.com Paris 3
3 Ted Bundy tbundy@example.com Lyon 2

L'utilisation des parenthèses peut se montrer très pertinente. Elles améliorent la lisibilité et la compréhension des requêtes, et par conséquent réduisent les erreurs.