# SQL BETWEEN : déterminer et évaluer des plages de valeurs

SQL BETWEEN est utilisé pour définir une plage de valeurs pour un nouveau résultat. L’opérateur fonctionne avec des nombres, des dates et des textes.

## Qu’est-ce que SQL BETWEEN ?

Si vous souhaitez utiliser le [Structured Query Language](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/) pour afficher les entrées d’une base de données qui se trouvent **dans une plage de valeurs définie**, l’opérateur SQL BETWEEN est le meilleur choix. Celui-ci ne s’applique pas seulement aux valeurs numériques, mais fonctionne également avec des données ou même des entrées de texte. L’opérateur fonctionne de manière inclusive, de sorte que la première et la dernière entrée avec lesquelles l’intervalle est délimité sont incluses dans l’énumération. SQL BETWEEN est intégré dans une condition WHERE et fonctionne avec les [commandes SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) [DELETE](https://www.ionos.fr/digitalguide/serveur/configuration/sql-delete/), INSERT, SELECT et UPDATE.

## SQL BETWEEN : syntaxe et fonctionnement

Examinons de plus près l’interaction de SQL BETWEEN avec la commande SELECT et la condition WHERE. La syntaxe correspondante se présente comme suit :

```sql
SELECT colonne1, colonne2, …
FROM nom_de_la_table
WHERE nom_de_la_colonne BETWEEN valeur_de_début AND valeur_de_fin;
```

Avec `colonne1`, `colonne2` etc., vous spécifiez quelles colonnes doivent être affichées. Ensuite, vous indiquez le nom de la table dans laquelle se trouvent ces colonnes. Sous `nom_de_colonne`, vous définissez les valeurs exactes à prendre en compte, puis vous indiquez la plage dans lequel les valeurs doivent se trouver avec `BETWEEN valeur_de_début AND valeur_de_fin`.

## SQL BETWEEN : exemples d’utilisation de l’opérateur

Pour mieux illustrer le fonctionnement de SQL BETWEEN, nous allons créer un exemple de table appelée « Clients ». Dans celle-ci, nous énumérons le numéro de client, le nom, la ville, la date de commande, le nombre d’articles commandés et le montant total en euros payé par ces clients.

<table>
  <thead>
    <tr>
      <th><strong>Numéro de client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Date</strong></th>
      <th><strong>Article</strong></th>
      <th><strong>Montant</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Duchamp</td>
      <td>Paris</td>
      <td>1/13/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Pierre</td>
      <td>Lille</td>
      <td>1/19/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Thomas</td>
      <td>Lille</td>
      <td>1/3/2024</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Sanson</td>
      <td>Toulouse</td>
      <td>1/19/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Martin</td>
      <td>Nantes</td>
      <td>2/1/2024</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Si nous voulons maintenant filtrer cette liste, nous pouvons utiliser l’opérateur. Il est par exemple possible de n’afficher que les clients qui ont investi entre 300 et 700 euros dans la période demandée. Voici le code correspondant :

```sql
SELECT Numéro de client, Nom, Ville, Date, Article, Montant
FROM Clients
WHERE Montant BETWEEN 300 AND 700;
```

Le résultat suivant s’affiche alors :

<table>
  <thead>
    <tr>
      <th><strong>Numéro de client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Date</strong></th>
      <th><strong>Article</strong></th>
      <th><strong>Montant</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Duchamp</td>
      <td>Paris</td>
      <td>1/13/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Thomas</td>
      <td>Lille</td>
      <td>1/3/2024</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Martin</td>
      <td>Nantes</td>
      <td>2/1/2024</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

### SQL BETWEEN : utiliser l’opérateur avec des entrées de texte

SQL BETWEEN fonctionne aussi avec des mots. Ce qui est déterminant ici, ce sont les premières lettres des valeurs textuelles enregistrées. Dans l’exemple suivant, nous voulons uniquement prendre en compte les entrées qui se trouvent alphabétiquement entre « Martin » et « Sanson ». Voici le code :

```sql
SELECT Numéro de client, Nom, Ville, Date, Article, Montant
FROM Clients
WHERE Nom BETWEEN 'Martin' AND 'Sanson'
ORDER BY Nom;
```

Voici le résultat :

<table>
  <thead>
    <tr>
      <th><strong>Numéro de client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Date</strong></th>
      <th><strong>Article</strong></th>
      <th><strong>Montant</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1118</td>
      <td>Martin</td>
      <td>Nantes</td>
      <td>2/1/2024</td>
      <td>10</td>
      <td>312</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Pierre</td>
      <td>Lille</td>
      <td>1/19/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Sanson</td>
      <td>Toulouse</td>
      <td>1/19/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

Les entrées « Martin » et « Sanson » sont prises en compte car l’opérateur fonctionne de manière inclusive. Avec l’instruction ORDER BY Nom, nous demandons un affichage dans l’ordre alphabétique.

### SQL BETWEEN : sélectionner par date

Si vous souhaitez seulement consulter les transactions effectuées dans un cadre temporel spécifique, cela est également possible avec SQL BETWEEN. Dans l’exemple suivant, nous filtrons notre liste de clients pour les commandes passées entre le 10 et le 31 janvier 2024. Voici le code :

```sql
SELECT Numéro de client, Nom, Ville, Date, Article, Montant
FROM Clients
WHERE Date BETWEEN '1/10/2024' AND '1/31/2024';
```

Nous obtenons ce résultat :

<table>
  <thead>
    <tr>
      <th><strong>Numéro de client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Date</strong></th>
      <th><strong>Article</strong></th>
      <th><strong>Montant</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Duchamp</td>
      <td>Paris</td>
      <td>1/13/2024</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Pierre</td>
      <td>Lille</td>
      <td>1/19/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Sanson</td>
      <td>Toulouse</td>
      <td>1/19/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

## Opérateurs similaires à SQL BETWEEN

Vous pouvez aussi choisir de n’afficher que les résultats se trouvant **en dehors de la plage définie**. Pour cela, utilisez **NOT BETWEEN**. L’approche est très similaire : par exemple, si nous souhaitons afficher uniquement les clients qui ont dépensé moins de 300 euros ou plus de 700 euros, cela fonctionne de la manière suivante :

```sql
SELECT Numéro de client, Nom, Ville, Date, Article, Montant
FROM Clients
WHERE Montant NOT BETWEEN 300 AND 700;
```

Notre sortie ne contient alors que deux entrées :

<table>
  <thead>
    <tr>
      <th><strong>Numéro de client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Date</strong></th>
      <th><strong>Article</strong></th>
      <th><strong>Montant</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1377</td>
      <td>Pierre</td>
      <td>Lille</td>
      <td>1/19/2024</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Sanson</td>
      <td>Toulouse</td>
      <td>1/19/2024</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

Conseil Pour une solution qui s’adapte à vos besoins : 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, vous choisissez non seulement entre MSSQL, MySQL ou MariaDB, mais vous bénéficiez également d’un conseiller personnel à votre écoute et de performances inégalées.


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