NOT est un opérateur logique en SQL qui permet de filtrer les résultats de recherche de manière efficace et précise en utilisant la méthode d’exclusion. En utilisant l’opérateur NOT pour exclure des données sous certaines con­di­tions, vous limitez vos résultats aux in­for­ma­tions per­ti­nentes.

Qu’est-ce que l’opérateur SQL NOT ?

SQL NOT fait partie, avec SQL AND et SQL OR, des opé­ra­teurs SQL logiques qui per­met­tent de formuler des con­di­tions et des critères pour les requêtes de données. Alors que les opé­ra­teurs AND et OR filtrent les en­re­gis­tre­ments qui rem­plis­sent toutes les con­di­tions ou au moins une condition spécifiée, l’opérateur NOT est quant à lui basé sur la méthode d’exclusion : vous excluez de votre résultat de recherche toutes les in­for­ma­tions contenues dans les en­re­gis­tre­ments sé­lec­tion­nés qui ne rem­plis­sent pas une condition définie.

SQL NOT est par­ti­cu­liè­re­ment utilisé en com­bi­nai­son avec SQL SELECT, SQL WHERE et SQL HAVING. Afin de rendre la recherche aussi précise que possible, vous pouvez également combiner l’opérateur NOT avec les opé­ra­teurs AND et OR. De cette manière, il est possible de filtrer les résultats non per­ti­nents qui ne rem­plis­sent pas toutes les con­di­tions définies (AND) ou qui ne rem­plis­sent pas au moins une des con­di­tions men­tion­nées (OR).

Les dif­fé­rences entre les opé­ra­teurs SQL NOT, AND et OR

En résumé, les opé­ra­teurs SQL NOT, AND et OR se dis­tin­guent comme suit :

SQL NOT SQL AND SQL OR
Ne renvoie que les en­re­gis­tre­ments qui ne rem­plis­sent pas une condition définie Renvoie les en­re­gis­tre­ments qui rem­plis­sent tous les critères de recherche pré­dé­fi­nis Renvoie toutes les in­for­ma­tions qui rem­plis­sent au moins une des con­di­tions définies
Négation d’une condition définie Combine les con­di­tions pour res­treindre la recherche aux in­for­ma­tions qui cor­res­pon­dent à plusieurs critères de recherche Étend les résultats de la recherche aux données qui cor­res­pon­dent à l’un des critères
Conseil

Vous débutez et souhaitez ap­pro­fon­dir vos con­nais­sances sur SQL ? Dans ce cas, notre in­tro­duc­tion à SQL avec exemples vous aidera à vous fa­mi­lia­ri­ser ra­pi­de­ment avec le langage des bases de données.

La syntaxe de l’opérateur NOT expliquée

La syntaxe de NOT se présente comme suit :

SELECT  *
FROM  Table
WHERE  NOT  (Condition de recherche)
sql

Ces pa­ra­mètres sont utilisés :

  • SELECT : sé­lec­tionne les colonnes qui sont per­ti­nentes pour votre recherche. Avec un as­té­risque *, vous re­cher­chez dans toute la table sé­lec­tion­née, y compris toutes les colonnes cor­res­pon­dantes. Vous pouvez aussi définir des colonnes in­di­vi­duelles avec la clé primaire ou étrangère cor­res­pon­dante.
  • FROM : définit la table dans laquelle vous souhaitez effectuer la recherche.
  • WHERE : définit des con­di­tions à l’aide d’opé­ra­teurs tels que SQL NOT pour limiter la recherche de données.
  • NOT : en com­bi­nai­son avec WHERE, permet de définir la négation d’une condition que les résultats de la recherche ne doivent pas remplir.

Si vous souhaitez préciser votre requête de données, vous pouvez la combiner avec AND ou OR.

SQL NOT : en com­bi­nai­son avec AND

En com­bi­nai­son avec AND, les résultats qui rem­plis­sent les deux con­di­tions de recherche ne doivent pas faire partie du jeu de résultats.

SELECT  *
FROM  Table
WHERE  NOT  (Condition de recherche1 AND condition de recherche2)
sql

SQL NOT : en com­bi­nai­son avec OR

En com­bi­nai­son avec OR, vous pouvez exclure des données qui ne rem­plis­sent pas au moins une des con­di­tions de recherche.

SELECT  *
FROM  Table
WHERE  NOT  (Condition de recherche1 OR condition de recherche2)
sql

SQL NOT : pour quelle uti­li­sa­tion cet opérateur est-il approprié ?

Les pos­si­bi­li­tés d’uti­li­sa­tion des requêtes et re­cherches avec NOT sont presque il­li­mi­tées. Ils peuvent par exemple :

  • Exclure des données de clients, de commandes ou de produits par région, année, catégorie, prix ou ca­rac­té­ris­tiques
  • Ignorer les en­re­gis­tre­ments dont les valeurs sont invalides ou man­quantes
  • Filtrer les données fi­nan­cières qui ne répondent pas à certains critères de tran­sac­tion
  • Exclure les données des employés qui n’ap­par­tien­nent pas à un service spé­ci­fique
  • Filtrer les candidats qui ne répondent pas à une qua­li­fi­ca­tion par­ti­cu­lière

Exemples pratiques de l’opérateur SQL NOT

Selon le cas d’uti­li­sa­tion, la recherche avec l’opérateur NOT peut varier con­si­dé­ra­ble­ment en fonction de la manière dont vous dé­fi­nis­sez la condition avec la clause WHERE, l’opérateur NOT et d’autres opé­ra­teurs op­tion­nels. Pour illustrer cela, nous vous proposons trois exemples pratiques d’ap­pli­ca­tion.

Exclusion d’employés par région

Dans une table « Employés », vous souhaitez afficher uni­que­ment des in­for­ma­tions sur les employés qui ne vivent pas en France. Pour cela, vous utilisez la colonne « Pays », la clause WHERE, l’opérateur NOT et l’opérateur de com­pa­rai­son = pour définir la condition comme suit :

SELECT  *
FROM  Employés
WHERE  NOT  (Pays = 'France')
sql

Procédez si­mi­lai­re­ment si vous souhaitez, par exemple, n’afficher dans une table de produits que les produits qui ne sont plus en stock :

SELECT  *
FROM  Produits
WHERE  NOT  (Stock > 0)
sql

Filtrer les groupes de clients

Dans une table « Clients », vous re­cher­chez un certain groupe de clients qui ne rem­plis­sent pas des con­di­tions pré­dé­fi­nies. Dans cet exemple, ils ne doivent pas avoir moins de 30 ans et ne pas vivre à Paris, c’est pourquoi des opé­ra­teurs de com­pa­rai­son et l’opérateur AND sont utilisés en plus de NOT.

SELECT  *
FROM  Clients
WHERE  NOT  (Âge < 30 AND Ville = 'Paris')
sql

Filtrer les com­pé­tences man­quantes lors d’une can­di­da­ture

Dans une table « Candidats », vous souhaitez exclure certains résultats qui ne répondent pas à des qua­li­fi­ca­tions spé­ci­fiques telles que « Master » ou « Ex­pé­rience pro­fes­sion­nelle ». La recherche se présente comme suit :

SELECT  *
FROM  Candidats
WHERE  NOT  (Diplôme = 'Master' OR 'Expérience professionnelle' < 3)
sql

Al­ter­na­tives à SQL NOT

Il n’existe pas d’al­ter­na­tive avec une fonction identique, car l’opérateur NOT se ca­rac­té­rise par la négation des critères de recherche. Comme SQL NOT est un opérateur SQL po­ly­va­lent, il peut cependant être combiné pour des requêtes précises avec dif­fé­rentes commandes SQL. Il s’agit notamment de SQL JOIN ou de fonctions d’agré­ga­tion SQL HAVING comme SQL SUM ou AVG, d’opé­ra­teurs de com­pa­rai­son comme = ou > et de commandes et opé­ra­teurs comme SQL LIKE. Pour limiter ou étendre la procédure d’exclusion à plusieurs con­di­tions, les opé­ra­teurs logiques AND et OR sont également utiles.

Aller au menu principal