Opérateur BETWEEN de MySQL expliqué (avec des exemples pratiques)

3. Spécifier une plage numérique

Comment utiliser BETWEEN pour les plages numériques

L’opérateur BETWEEN est très pratique pour spécifier des plages numériques. Par exemple, si vous souhaitez extraire les employés dont le salaire est compris 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

employee_idnamesalary
1Smith45000
2Johnson55000
3Brown75000
4Taylor120000

Résultat d’exécution

employee_idnamesalary
2Johnson55000
3Brown75000

Dans la requête ci-dessus, seuls les employés dont le salaire se situe dans la plage de 50 000 à 100 000 sont sélectionnés.

Différence avec les opérateurs de comparaison

Si vous écrivez la même condition en utilisant des opérateurs de comparaison, cela ressemblerait à ceci :

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

L’utilisation de BETWEEN rend la requête plus concise et améliore la lisibilité. Cela est particulièrement utile lorsque vous avez plusieurs conditions de plage, car BETWEEN maintient la requête plus facile à lire.

4. Spécifier une plage de dates

Comment utiliser BETWEEN avec les données de date

BETWEEN peut également être utilisé pour spécifier une plage pour les données de date. Par exemple, pour extraire les commandes d’une table des commandes entre le 1er janvier 2024 et le 31 décembre 2024, vous pouvez écrire la requête comme suit :

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_idcustomer_idorder_date
11012024-01-15
21022024-05-30
31032025-03-01

Résultat d’exécution

order_idcustomer_idorder_date
11012024-01-15
21022024-05-30

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

Gestion des valeurs temporelles

Si vos données de date incluent des valeurs temporelles, vous devez faire preuve de prudence. Par exemple, si la colonne order_date est de type DATETIME et inclut l’heure, l’utilisation de BETWEEN ciblera la plage de minuit exact du début de la date à minuit exact de la fin de la date, à moins que vous ne spécifiiez correctement l’heure.

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

5. Spécifier une plage de chaînes

Comment utiliser BETWEEN avec les données de chaîne

L’opérateur BETWEEN peut également être appliqué aux données de chaîne. Par exemple, si vous souhaitez rechercher des produits dont les noms se situent dans la plage de ‘A’ à ‘M’, vous pouvez écrire la requête comme suit :

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

Données d’exemple

product_idproduct_name
1Apple
2Banana
3Mango
4Orange

Résultat d’exécution

product_idproduct_name
1Apple
2Banana
3Mango

Notes sur l’ordre alphabétique

Lorsque vous spécifiez une plage pour les valeurs de chaîne, il est supposé que les chaînes sont ordonnées alphabétiquement. Selon les paramètres de la base de données, la sensibilité à la casse peut s’appliquer, vous devez donc faire preuve de prudence lors de la conception et du codage. Par exemple, 'a' et 'A' peuvent être traités comme des valeurs différentes.

6. Notes importantes lors de l’utilisation de BETWEEN

Choses à surveiller lors de la définition des plages

Lorsque vous utilisez l’opérateur BETWEEN, vous devez prêter attention à l’ordre des valeurs de début et de fin. Si la valeur de début 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;  -- Unexpected result

De plus, comme BETWEEN inclut les deux extrémités de la plage spécifiée, il est important de choisir soigneusement les valeurs de début et de fin.

Utilisation des index et efficacité

L’opérateur BETWEEN fournit généralement des performances comparables à celles des opérateurs de comparaison standard. Cependant, pour optimiser les performances des requêtes, vous devez définir des index appropriés. Lorsque les index sont configurés correctement, les requêtes utilisant l’opérateur BETWEEN peuvent s’exécuter plus rapidement. Par exemple, ajouter un index à une colonne de date permet d’exécuter les requêtes de plage de dates de manière plus efficace.

7. Requêtes pratiques et exemples avancés

Utiliser BETWEEN avec plusieurs colonnes

.L’opérateur BETWEEN peut également être utilisé en combinant plusieurs colonnes. Par exemple, si vous souhaitez effectuer une recherche par intervalle en spécifiant à la fois le prix du produit et la quantité en stock, vous pouvez écrire une requête comme celle‑ci :

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

Cette requête recherche les produits dont le prix se situe dans la fourchette de 1 000 à 5 000 et dont le stock se trouve dans la fourchette de 50 à 200.

Exemple pratique de NOT BETWEEN

En utilisant la forme négative NOT BETWEEN, vous pouvez extraire les données qui se situent en dehors d’un intervalle spécifique. Par exemple, si vous voulez 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 d’exécution

employee_idnamesalary
1Smith45000
4Taylor120000

Cette requête récupère les employés dont le salaire ne se trouve pas dans la fourchette de 50 000 à 100 000. L’utilisation de NOT BETWEEN facilite l’extraction de données avec la condition opposée.

8. Exemple visuel d’une requête

Pour illustrer visuellement les résultats d’une requête, il peut être efficace d’utiliser un diagramme simple. Par exemple, vous pouvez vous servir d’un diagramme comme celui ci‑dessous pour expliquer le fonctionnement de BETWEEN :

Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (in range)
Product B price: 6000 (out of range)

Utiliser un diagramme de ce type rend plus intuitif la compréhension de la présence ou non des données dans l’intervalle spécifié par la requête.

9. Résumé

L’opérateur BETWEEN est un outil très pratique dans MySQL lorsqu’il s’agit de rechercher dans un intervalle défini. Il peut être appliqué aux données numériques, aux dates et aux chaînes de caractères, vous permettant d’écrire des requêtes de manière concise et efficace. Cependant, il est important de retenir quelques points clés, tels que le fait qu’il inclut les deux bornes de l’intervalle et l’impact que les index peuvent avoir sur les performances. En maîtrisant ces notions, vous pouvez optimiser les performances de vos requêtes et extraire efficacement les données dont vous avez besoin.

10. Références

Pour plus de détails sur les requêtes et d’autres modèles d’utilisation, il est recommandé de consulter la documentation officielle de MySQL ainsi que des ouvrages spécialisés sur les bases de données. De plus, en testant vous‑même les requêtes, vous approfondirez votre compréhension de l’opérateur BETWEEN.