# SQL AND : combiner plusieurs conditions dans une requête SQL

SQL `AND` est un opérateur utilisé pour effectuer une requête avec certains paramètres. L’entrée correspondante n’est prise en compte que si toutes les conditions indiquées sont remplies.

## SQL `AND` : pourquoi l’utiliser ?

L’opérateur SQL `AND` est utilisé dans le [Structured Query Language](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/) pour **filtrer les résultats d’une clause selon des critères spécifiques**, permettant ainsi des recherches précises. Tout comme l’opérateur [SQL OR](https://www.ionos.fr/digitalguide/serveur/configuration/sql-or/), `AND` est principalement utilisé dans la requête `WHERE` et peut être combiné avec d’autres opérateurs. Ces deux opérateurs sont basés sur l’algèbre booléenne, qui opère sur les valeurs logiques « vrai » ou « faux ». Cependant, `OR` tend à plus élargir les résultats de recherche que AND.

## SQL `AND` : syntaxe et fonctionnement

SQL `AND` est utilisé dans une requête SELECT en combinaison avec une condition `WHERE`. La syntaxe se présente comme suit :

```sql
SELECT colonne1, colonne2, …
FROM nom_de_la_table
WHERE condition1 AND condition2 AND condition3 AND …;
```

Grâce à la [commande SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) `SELECT`, vous sélectionnez toutes les colonnes à considérer pour votre requête. Il est aussi possible de spécifier une colonne unique. La clause FROM permet de localiser la table correspondante pour votre requête. Avec WHERE, vous énumérez les conditions que les entrées doivent remplir pour être affichées. L’opérateur SQL `AND` affiche un résultat **uniquement si toutes les conditions sont remplies**, tandis que `OR` affiche également des entrées si au moins une des conditions est remplie.

## SQL `AND` : exemple d’utilisation de l’opérateur

La fonction et l’utilité de SQL `AND` sont plus facilement compréhensibles à travers un exemple. Imaginons une entreprise possédant plusieurs filiales dans le monde. Dans une table dédiée, nous enregistrons un identifiant pour chaque filiale, la ville, le pays et le nombre d’employés. Le nom de notre table est « Filiales ».

<table>
  <thead>
    <tr>
      <th><strong>ID</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Pays</strong></th>
      <th><strong>Employés</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Paris</td>
      <td>France</td>
      <td>26</td>
    </tr>
    <tr>
      <td>2</td>
      <td>Lyon</td>
      <td>France</td>
      <td>15</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Lille</td>
      <td>France</td>
      <td>21</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Berlin</td>
      <td>Allemagne</td>
      <td>21</td>
    </tr>
    <tr>
      <td>5</td>
      <td>Barcelone</td>
      <td>Espagne</td>
      <td>17</td>
    </tr>
  </tbody>
</table>

Dans l’étape suivante, nous lançons une requête et utilisons l’opérateur `AND` comme critère d’exclusion pour une recherche. Ainsi, seules les filiales situées en France et employant plus de 20 personnes doivent être affichées. La déclaration correspondante se présente alors comme suit :

```sql
SELECT ID, Ville, Pays, Employés
FROM Filiales
WHERE Pays = 'France' AND Employés > 20;
```

Le résultat est le suivant :

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Ville</th>
      <th>Pays</th>
      <th>Employés</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Paris</td>
      <td>France</td>
      <td>26</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Lille</td>
      <td>France</td>
      <td>21</td>
    </tr>
  </tbody>
</table>

À l’aide de l’opérateur `AND`, nous avons exclu la filiale avec l’ID 2, car elle emploie moins de 20 personnes. Les filiales 4 et 5 n’ont pas été prises en compte, car elles ne sont pas situées en France.

## Combiner les opérateurs `AND` et `OR`

Il est possible de combiner SQL `AND` avec l’opérateur `OR`. Pour cela, nous utilisons à nouveau le tableau ci-dessus appelé « Filiales ». Cette fois-ci, nous souhaitons toutefois prendre en compte toutes les filiales qui ont plus de 20 employés et qui se trouvent en France OU en Allemagne. Pour cela, nous devons recourir à une parenthèse. Le code correspondant se présente comme suit :

```sql
SELECT ID, Ville, Pays, Employés
FROM Filiales
WHERE (Pays = 'France' OR Pays = 'Allemagne') AND Employés > 20;
```

Voici le résultat :

<table>
  <thead>
    <tr>
      <th>ID</th>
      <th>Ville</th>
      <th>Pays</th>
      <th>Employés</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>Paris</td>
      <td>France</td>
      <td>26</td>
    </tr>
    <tr>
      <td>3</td>
      <td>Lille</td>
      <td>France</td>
      <td>21</td>
    </tr>
    <tr>
      <td>4</td>
      <td>Berlin</td>
      <td>Allemagne</td>
      <td>21</td>
    </tr>
  </tbody>
</table>

## Opérateurs similaires à SQL `AND`

En plus de l’opérateur `OR`, il existe une autre alternative à SQL `AND` qui permet de rechercher un ensemble de données selon certains critères. L’opérateur `NOT` fait office de critère d’exclusion et sélectionne les entrées qui ne remplissent PAS une certaine condition. Ainsi, pour le premier exemple évoqué ci-dessus, vous pourriez utiliser cet opérateur pour afficher, entre autres, toutes les filiales qui ne se trouvent pas en France.

Conseil Choisissez entre MSSQL, MySQL et MariaDB : avec le [serveur d’hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql "Hébergement SQL pour les bases de données MSSQL, MySQL et MariaDB | IONOS") de IONOS, vos données sont parfaitement sécurisées et accessibles à tout moment. Choisissez le modèle le plus adapté à vos besoins !


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