Comment utiliser l’opérateur BETWEEN de MySQL (avec des exemples les nombres, les dates et les chaînes)

1. Introduction

L’un des éléments clés pour exécuter des requêtes efficacement dans les bases de données MySQL est l’opérateur BETWEEN. Cet opérateur est extrêmement utile pour vérifier si des données se situent dans une plage spécifique. Il peut être appliqué aux nombres, aux dates et aux chaînes de caractères, ce qui en fait un outil puissant pour filtrer et récupérer des données de manière efficace. Dans cet article, nous expliquerons comment utiliser l’opérateur BETWEEN de MySQL, fournirons des exemples pratiques et soulignerons les points importants à garder à l’esprit.

2. Syntaxe de base de l’opérateur BETWEEN

Qu’est-ce que l’opérateur BETWEEN ?

L’opérateur BETWEEN est utilisé dans la clause WHERE pour vérifier si la valeur d’une colonne se situe dans une plage spécifiée. Sa syntaxe de base est la suivante :

SELECT column_name
FROM table_name
WHERE column_name BETWEEN start_value AND end_value;

Par exemple, si une table stocke les âges des employés, vous pouvez utiliser cet opérateur pour extraire uniquement ceux qui se trouvent dans une plage d’âge spécifique.

Forme négative : NOT BETWEEN

Si vous devez rechercher des valeurs en dehors de la plage spécifiée, vous pouvez utiliser la forme négative NOT BETWEEN :

SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;

3. Filtrage par plage numérique

Utilisation de BETWEEN avec des nombres

L’opérateur BETWEEN est très pratique pour filtrer des plages numériques. Par exemple, si vous souhaitez extraire les employés dont les salaires se situent entre 50 000 et 100 000, vous pouvez écrire la requête comme suit :

SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;

Données d’exemple :

identifiant_employé

name

salaire

1

Sato

45000

2

Suzuki

55000

3

Takahashi

75000

4

Tanaka

120000

Résultat :

id_employé

name

salaire

2

Suzuki

55000

3

Takahashi

75000

Dans cette requête, seuls les employés dont les salaires se situent entre 50 000 et 100 000 sont sélectionnés.

Opérateurs de comparaison vs. BETWEEN

La même condition peut également être exprimée avec des opérateurs de comparaison, comme ceci :

SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;

Utiliser BETWEEN rend la requête plus concise et plus lisible. Cela est particulièrement utile lorsqu’on gère plusieurs conditions de plage.

4. Filtrage par plage de dates

Utilisation de BETWEEN avec des dates

L’opérateur BETWEEN peut également être appliqué aux plages de dates. Par exemple, pour récupérer les commandes passées entre le 1er janvier 2024 et le 31 décembre 2024, vous pouvez écrire :

SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';

Données d’exemple :

order_id

identifiant_client

order_date

1

101

2024-01-15

2

102

2024-05-30

3

103

2025-03-01

Résultat :

order_id

customer_id

order_date

1

101

2024-01-15

2

102

2024-05-30

Comme indiqué ci-dessus, l’opérateur BETWEEN extrait les données situées dans la plage de dates spécifiée.

Gestion des données temporelles

Si la colonne de date inclut des valeurs d’heure, vous devez être prudent. Par exemple, si la colonne order_date est de type DATETIME, l’utilisation de BETWEEN inclura les valeurs depuis minuit (00:00:00) de la date de début jusqu’à minuit du jour suivant la date de fin. Pour vous assurer de capturer la journée complète, spécifiez explicitement la composante temporelle :

WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';

5. Filtrage par plage de chaînes

Utilisation de BETWEEN avec des chaînes

L’opérateur BETWEEN peut également être appliqué aux données de type chaîne. Par exemple, si vous souhaitez rechercher des produits dont les noms se situent alphabétiquement entre ‘A’ et ‘M’, la requête serait la suivante :

SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';

Données d’exemple :

product_id

product_name

1

Apple

2

Banana

3

Mango

4

Orange

Résultat :

product_id

nom_du_produit

1

Apple

2

Banana

3

Mango

Considérations sur l’ordre alphabétique

Lors du filtrage des chaînes avec BETWEEN, gardez à l’esprit que l’évaluation se base sur l’ordre alphabétique. De plus, selon les paramètres de collation de la base de données, la sensibilité à la casse peut s’appliquer. Par exemple, 'a' et 'A' peuvent être traités comme des valeurs différentes. Vérifiez toujours les paramètres de collation lorsque vous travaillez avec des plages de chaînes.

6. Notes importantes sur l’opérateur BETWEEN

Ordre des valeurs de la plage

Soyez prudent concernant l’ordre des valeurs de la plage. Si la valeur de départ est supérieure à la valeur de fin, la requête peut renvoyer des résultats inattendus :

SELECT * 
FROM table_name 
WHERE column_name BETWEEN 100 AND 50;  -- Unintended result

De plus, rappelez‑vous que l’opérateur BETWEEN est inclusif aux deux extrémités de l’intervalle, choisissez donc vos valeurs avec soin.

Index et performance des requêtes

L’opérateur BETWEEN fonctionne généralement de la même manière que les opérateurs de comparaison. Cependant, pour optimiser les performances, un indexage approprié est essentiel. Par exemple, si vous appliquez un index à une colonne de type date, les requêtes utilisant BETWEEN sur cette colonne s’exécuteront plus efficacement.

7. Requêtes pratiques et cas d’utilisation

Utilisation de BETWEEN sur plusieurs colonnes

Vous pouvez également combiner des conditions BETWEEN sur plusieurs colonnes. Par exemple, si vous souhaitez filtrer les produits en fonction à la fois du prix et de la plage de stock, vous pouvez écrire :

SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
  AND stock BETWEEN 50 AND 200;

Cette requête récupère les produits dont le prix se situe entre 1000 et 5000, avec des niveaux de stock compris entre 50 et 200.

Utilisation pratique de NOT BETWEEN

En utilisant la forme négative NOT BETWEEN, vous pouvez facilement extraire les données situées en dehors d’une plage spécifique. Par exemple, pour trouver les employés dont le salaire est inférieur à 50 000 ou supérieur à 100 000, vous pouvez écrire :

SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;

Résultat :

employee_id

name

salaire

1

Sato

45000

4

Tanaka

120000

Cette requête récupère les employés dont le salaire ne se situe pas entre 50 000 et 100 000. L’utilisation de NOT BETWEEN rend simple l’application de la condition opposée.

8. Exemples visuels de requêtes

Pour rendre les résultats des requêtes plus intuitifs, des diagrammes visuels peuvent être utiles. Par exemple, vous pouvez illustrer l’effet de BETWEEN comme suit :

Price Range: [----- 1000 ---- 5000 -----]
Product A Price: 3000 (Inside Range)
Product B Price: 6000 (Outside Range)

De telles illustrations facilitent la compréhension de la façon dont une valeur se situe dans l’intervalle spécifié par la requête.

9. Résumé

L’opérateur BETWEEN est un outil puissant dans MySQL pour les recherches basées sur des intervalles. Il peut être appliqué aux données numériques, de date et de chaîne, vous permettant d’écrire des requêtes à la fois concises et efficaces. Cependant, il est important de comprendre ses caractéristiques — telles que l’inclusivité des valeurs limites et l’importance d’un indexage adéquat — afin d’éviter des résultats inattendus. En appliquant ces connaissances, vous pouvez optimiser les performances des requêtes et extraire uniquement les données dont vous avez besoin de manière plus efficace.

10. Références

Pour plus de détails et des cas d’utilisation avancés, vous pouvez consulter la documentation officielle de MySQL ou des ouvrages spécialisés sur les bases de données. De plus, expérimenter vous‑même avec les requêtes est l’une des meilleures façons d’approfondir votre compréhension du fonctionnement de l’opérateur BETWEEN.