Retour à la liste des articles Articles
5 minutes de lecture

Utilisation des opérateurs AND, OR et NOT en SQL

ANDLes opérateurs ET, OU, OR et NOT sont des opérateurs logiques importants en SQL. Ils vous aident à combiner les conditions utilisées pour filtrer les enregistrements. Ils sont le plus souvent utilisés en conjonction avec les clauses WHERE ou HAVING. En outre, ce sujet est une question assez courante dans les entretiens d'embauche en SQL.

Pour vous aider à bien comprendre ces opérateurs, je vais vous donner quelques exemples, en expliquant en détail la syntaxe et le but de chacun d'entre eux. S'entraîner à l'aide d'exemples comme ceux-ci est l'une des meilleures méthodes pour apprendre SQL.

Pour nos exemples, imaginons que nous gérons et possédons une salle de sport avec différents sites aux États-Unis. Lorsque les gens s'inscrivent, ils nous donnent quelques informations de base. Celles-ci seront stockées dans notre table members qui contient un identifiant unique pour chaque membre, ainsi que son nom et son prénom, son âge, la date à laquelle il a rejoint la salle de sport et le lieu où elle se trouve.

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
2BradPitt562018-06-15San Francisco
3TomHanks642017-02-27San Diego
4AngelinaJolie452019-04-02Los Angeles
5MerylStreep712014-03-21Manhattan

Syntaxe SQL AND

La syntaxe de l'opérateur AND est la suivante :

SELECT column_1, column_2, … column_n
FROM table
WHERE condition_1 AND condition_2 AND condition_n

Lorsque plusieurs conditions sont combinées à l'aide de l'opérateur AND, toutes les lignes qui remplissent toutes les conditions données sont renvoyées.

Il est maintenant temps d'appliquer l'opérateur AND à notre scénario de gymnastique. Supposons que nous voulions trouver tous les membres qui ont moins de 50 ans et qui vivent à Los Angeles. Comment pouvons-nous y parvenir à l'aide d'une requête SQL ?

SELECT * 
FROM members 
WHERE Age < 50 AND Location = 'Los Angeles';
idFirstNameLastNameAgeDateJoinedLocation
4AngelinaJolie452019-04-02Los Angeles

Age Bien que nous ayons deux membres dont l'adresse Location est Los Angeles, un seul de ces membres a moins de 50 ans. N'oubliez pas que lorsque vous utilisez l'opérateur SQL AND, les deux conditions doivent être remplies pour qu'un enregistrement soit renvoyé.

Syntaxe SQL OR

La syntaxe de l'opérateur OR est la suivante :

SELECT column_1, column_2, … column_n
FROM table
WHERE condition_1 OR condition_2 OR condition_n

Lorsque plusieurs conditions sont combinées à l'aide de l'opérateur OR, toutes les lignes qui répondent à l'une des conditions données sont renvoyées. Nous pouvons appliquer cette méthode à notre table members en écrivant la requête suivante :

SELECT * 
FROM members 
WHERE Location = 'Los Angeles' OR LastName = 'Hanks'

Avec cette requête, nous cherchons à récupérer les lignes où LastName est Hanks ou Location est Los Angeles. L'exécution de cette requête donne le résultat suivant :

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
3TomHanks642017-02-27San Diego
4AngelinaJolie452019-04-02Los Angeles

Remarquez que notre membre Tom Hanks est inclus dans le jeu de résultats même si son gymnase Location n'est pas Los Angeles. Cela est dû au fait qu'il remplit la deuxième condition que nous avons spécifiée - son nom de famille est "Hanks". N'oubliez pas : lorsque vous utilisez l'opérateur SQL OR, toutes les lignes qui remplissent l'une des conditions données sont retournées.

Syntaxe SQL NOT

La syntaxe de l'opérateur NOT est la suivante :

SELECT column_1, column_2, … column_n
FROM table
WHERE NOT condition 

Lorsque plusieurs conditions sont combinées à l'aide de l'opérateur NOT, toutes les lignes qui ne remplissent pas les conditions données sont renvoyées.

Nous pouvons utiliser cet opérateur avec notre exemple de gymnase de plusieurs façons utiles. Que se passe-t-il si nous voulons trouver tous les membres qui se trouvent en dehors de Los Angeles ? En utilisant l'opérateur NOT, nous pouvons simplement écrire :

SELECT * 
FROM members 
WHERE NOT Location = 'Los Angeles'

L'exécution de cette requête produit l'ensemble de données suivant :

idFirstNameLastNameAgeDateJoinedLocation
2BradPitt562018-06-15San Francisco
3TomHanks642017-02-27San Diego
5MerylStreep712014-03-21Manhattan

Vous pouvez clairement voir quel effet l'opérateur NOT a eu. Aucun membre dont le site Location était réglé sur Los Angeles n'a été renvoyé.

Combinaison des opérateurs AND, OR et NOT

Dans certaines situations, il peut être nécessaire de combiner ces opérateurs afin de spécifier les données exactes que vous souhaitez.

Voici à nouveau notre table members Il s'agit de l'ensemble de données que nous allons interroger dans cet exemple.

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
2BradPitt562018-06-15San Francisco
3TomHanks642017-02-27San Diego
4AngelinaJolie452019-04-02Los Angeles
5MerylStreep712014-03-21Manhattan

Imaginons maintenant que nous voulions récupérer les données des membres qui répondent à des critères très spécifiques. Nous voulons des membres qui sont :

  • Ont plus de 50 ans.
  • Situés à Los Angeles ou à Manhattan.

Nous pouvons accomplir cela en écrivant la requête SQL suivante :

SELECT * FROM members
WHERE AGE > 50 AND (Location='Los Angeles' OR Location='Manhattan')

Remarquez comment nous avons utilisé des parenthèses/parenthèses pour regrouper nos opérateurs. Nous faisons cela pour que SQL sache exactement comment interpréter l'ordre de nos opérateurs. Le résultat de cette requête est :

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
5MerylStreep712014-03-21Manhattan

Vous pouvez voir comment le fait de combiner les opérateurs AND, OR, et NOT de différentes manières peut nous aider à filtrer précisément nos données.

Étendre votre SQL avec les opérateurs AND, OR et NOT

Vous avez maintenant la possibilité de récupérer les données exactes que vous souhaitez. Cela ouvre de nombreuses possibilités.

Vous pouvez utiliser la clause WHERE conjointement avec AND, OR, et NOT, ce qui vous permet d'être très précis dans vos requêtes SQL. La lecture de nos articles de blog est un excellent moyen d'apprendre la syntaxe SQL et de voir les différents scénarios dans lesquels SQL peut être utile. Toutefois, si vous souhaitez un guide vraiment complet de l'écriture de requêtes, envisagez notre cours SQL pour les débutants qui vous permettra d'acquérir de nombreuses connaissances pratiques.