# SQL NOT : l’opérateur SQL pour une recherche précise avec des critères d’exclusion

`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 conditions, vous limitez vos résultats aux informations pertinentes.

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

SQL `NOT` fait partie, avec SQL `AND` et [SQL `OR`](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/sql-or/), des opérateurs SQL logiques qui permettent de formuler des conditions et des critères pour les requêtes de données. Alors que les opérateurs `AND` et `OR` filtrent les enregistrements qui remplissent toutes les conditions 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 informations contenues dans les enregistrements sélectionnés qui **ne remplissent pas** une condition définie.

SQL `NOT` est particulièrement utilisé en combinaison 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érateurs `AND` et `OR`**. De cette manière, il est possible de filtrer les résultats non pertinents qui ne remplissent pas toutes les conditions définies (`AND`) ou qui ne remplissent pas au moins une des conditions mentionnées (`OR`).

### Les différences entre les opérateurs SQL `NOT`, `AND` et `OR`

En résumé, les opérateurs SQL `NOT`, `AND` et `OR` se distinguent comme suit :

<table>
  <thead>
    <tr>
      <th>SQL `NOT`</th>
      <th>SQL `AND`</th>
      <th>SQL `OR`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ne renvoie que les enregistrements qui ne remplissent pas une condition définie</td>
      <td>Renvoie les enregistrements qui remplissent tous les critères de recherche prédéfinis</td>
      <td>Renvoie toutes les informations qui remplissent au moins une des conditions définies</td>
    </tr>
    <tr>
      <td>Négation d’une condition définie</td>
      <td>Combine les conditions pour restreindre la recherche aux informations qui correspondent à plusieurs critères de recherche</td>
      <td>Étend les résultats de la recherche aux données qui correspondent à l’un des critères</td>
    </tr>
  </tbody>
</table>

Conseil Vous débutez et souhaitez approfondir vos connaissances sur [SQL](https://www.ionos.com/fr-be/digitalguide/serveur/know-how/definition-de-sql/) ? Dans ce cas, notre [introduction à SQL avec exemples](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) vous aidera à vous familiariser rapidement 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 :

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

Ces paramètres sont utilisés :

- `SELECT` : sélectionne les colonnes qui sont pertinentes pour votre recherche. Avec un astérisque `*`, vous recherchez dans toute la table sélectionnée, y compris toutes les colonnes correspondantes. Vous pouvez aussi définir des colonnes individuelles avec la clé primaire ou étrangère correspondante.
- `FROM` : définit la table dans laquelle vous souhaitez effectuer la recherche.
- `WHERE` : définit des conditions à l’aide d’opérateurs tels que SQL `NOT` pour limiter la recherche de données.
- `NOT` : en combinaison 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 combinaison avec `AND`

En combinaison avec `AND`, les résultats qui **remplissent les deux conditions de recherche** ne doivent pas faire partie du jeu de résultats.

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

### SQL `NOT` : en combinaison avec `OR`

En combinaison avec `OR`, vous pouvez exclure des données qui **ne remplissent pas au moins une des conditions de recherche**.

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

## SQL `NOT` : pour quelle utilisation cet opérateur est-il approprié ?

Les possibilités d’utilisation des requêtes et recherches avec `NOT` sont **presque illimité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 caractéristiques
- Ignorer les enregistrements dont les valeurs sont invalides ou manquantes
- Filtrer les données financières qui ne répondent pas à certains critères de transaction
- Exclure les données des employés qui n’appartiennent pas à un service spécifique
- Filtrer les candidats qui ne répondent pas à une qualification particulière

## Exemples pratiques de l’opérateur SQL `NOT`

Selon le cas d’utilisation, la recherche avec l’opérateur `NOT` peut varier considérablement en fonction de la manière dont vous définissez la condition avec la clause `WHERE`, l’opérateur `NOT` et d’autres opérateurs optionnels. Pour illustrer cela, nous vous proposons **trois exemples pratiques d’application**.

### Exclusion d’employés par région

Dans une table « Employés », vous souhaitez afficher uniquement des informations 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 comparaison `=` pour définir la condition comme suit :

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

Procédez similairement si vous souhaitez, par exemple, n’afficher dans une table de produits que les produits qui **ne sont plus en stock** :

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

### Filtrer les groupes de clients

Dans une table « Clients », vous recherchez un certain groupe de clients qui **ne remplissent pas des conditions prédéfinies**. Dans cet exemple, ils ne doivent pas avoir moins de 30 ans et ne pas vivre à Paris, c’est pourquoi des opérateurs de comparaison et l’opérateur `AND` sont utilisés en plus de `NOT`.

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

### Filtrer les compétences manquantes lors d’une candidature

Dans une table « Candidats », vous souhaitez exclure certains résultats qui ne répondent pas à des **qualifications spécifiques** telles que « Master » ou « Expérience professionnelle ». La recherche se présente comme suit :

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

## Alternatives à SQL `NOT`

Il n’existe pas d’alternative avec une fonction identique, car l’opérateur `NOT` se caractérise par la négation des critères de recherche. Comme SQL `NOT` est un opérateur SQL polyvalent, il peut cependant être combiné **pour des requêtes précises** avec différentes commandes SQL. Il s’agit notamment de SQL JOIN ou de fonctions d’agrégation SQL `HAVING` comme [SQL `SUM`](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/sql-sum/) ou `AVG`, d’opérateurs de comparaison comme `=` ou `>` et de commandes et opérateurs comme SQL LIKE. Pour limiter ou étendre la procédure d’exclusion à plusieurs conditions, les opérateurs logiques `AND` et `OR` sont également utiles.


This is a markdown version of: [https://www.ionos.com/fr-be/digitalguide/serveur/configuration/sql-not/](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/sql-not/) for AI/LLM consumption.