Retour à la liste des articles Articles
8 minutes de lecture

L'opérateur SQL BETWEEN

Les opérateurs de comparaison SQL sont des outils essentiels pour filtrer les données dans les requêtes de base de données. Parmi ces opérateurs, l'opérateur ENTRE se distingue comme un outil important pour spécifier des plages à l'intérieur d'ensembles de données.

Les opérateurs de comparaison SQL, tels que BETWEEN, sont utiles pour filtrer les données dans les requêtes de base de données. L'opérateur BETWEEN vous permet de sélectionner des lignes dans un intervalle donné, ce qui le rend idéal pour des tâches telles que la segmentation d'un public par tranches d'âge, l'identification de seuils pour des articles compris entre certaines quantités ou la catégorisation des performances sur la base des notes d'examen.

Dans cet article, nous allons passer en revue les principes fondamentaux de l'opérateur SQL BETWEEN. Nous nous concentrerons sur des exemples pratiques et des conseils réalistes pour en tirer le meilleur parti. Que vous soyez débutant en SQL ou que vous souhaitiez améliorer vos compétences, la compréhension de l'opérateur SQL BETWEEN améliorera vos requêtes SQL.

Si vous êtes novice en SQL, pourquoi ne pas jeter un coup d'œil à notre SQL pour les débutants cours ? Si vous souhaitez réviser et consolider vos compétences en SQL, notre piste La pratique du SQL vous permettra d'aller plus loin dans votre apprentissage.

Ceci étant dit, commençons à découvrir la puissance de SQL BETWEEN!

Comprendre l'opérateur SQL BETWEEN

Syntaxe de base de l'opérateur BETWEEN

L'opérateur SQL BETWEEN suit une syntaxe simple. Vous avez du mal à vous souvenir de la syntaxe SQL et des noms d'opérateurs ? Ne vous inquiétez pas, nous avons tout ce qu'il vous faut grâce à notre aide-mémoire SQL!

La structure typique de BETWEEN est la suivante :

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Décomposons la syntaxe :

  • SELECT: Spécifie les colonnes à partir desquelles les données doivent être extraites.
  • FROM: La table qui stocke les données.
  • WHERE: Filtre les lignes en fonction de critères spécifiques.
  • BETWEEN: L'opérateur BETWEEN lui-même.
  • value1: La limite inférieure de la plage.
  • value2: La limite supérieure de la plage.

Un exemple pratique de BETWEEN

Il est important de savoir que l'opérateur BETWEEN inclut à la fois les limites inférieure et supérieure. En d'autres termes, il inclut les valeurs égales à value1, value2, ainsi que toute valeur intermédiaire dans l'ensemble de résultats. Prenons un exemple.

Imaginons que nous travaillions dans un grand magasin et que nous souhaitions récupérer toutes les informations sur nos produits dont le prix est compris entre 12,99 et 19,99 dollars inclus :

SELECT *
FROM products
WHERE price BETWEEN 12.99 AND 19.99;

Cette requête renverra toutes les lignes de la table products dont le prix est égal à 12,99, 19,99, ou égal à n'importe quel prix entre 12,99 et 19,99. Comme on le voit ici, l'utilisation de l'opérateur BETWEEN simplifie et clarifie le code, le rendant plus facile à lire et à maintenir. Pour d'autres exemples pratiques pour débutants, consultez nos 10 exercices pour débutants La pratique du SQL avec solutions.

Simplifier les requêtes avec BETWEEN

Vous avez peut-être déjà remarqué que l'opérateur BETWEEN est essentiellement un raccourci pour combiner les opérateurs >= et <=. L'utilisation de la syntaxe column_name BETWEEN value1 AND value2 est équivalente à l'énoncé column_name >= value1 AND column_name <= value2. En appliquant cette syntaxe à notre requête précédente, le résultat final sera le même :

SELECT *
FROM products
WHERE price >= 50 AND price <= 100;

Cependant, l'opérateur BETWEEN offre une syntaxe plus compacte et plus évidente que l'utilisation des opérateurs >= et <=. Il simplifie la création des requêtes, réduit les erreurs et améliore la lisibilité, ce qui en fait la méthode recommandée pour spécifier les conditions d'étendue dans les requêtes SQL.

L'opérateur NOT BETWEEN

En SQL, nous utilisons souvent l'opérateur logique NOT pour supprimer de nos données les lignes qui ne remplissent pas la condition donnée. De même, nous pouvons utiliser NOT BETWEEN pour obtenir les résultats opposés de l'opérateur BETWEEN.

En d'autres termes, l'utilisation de l'opérateur BETWEEN permet de filtrer les résultats à l'intérieur de la plage spécifiée. L'utilisation de l'opérateur NOT BETWEEN permet de filtrer les résultats en dehors de la plage.

Considérons un scénario dans lequel nous voulons extraire toutes les données de la table customers dont l'âge des clients n' est pas compris entre 25 et 30 ans. Nous pouvons y parvenir avec l'opérateur NOT BETWEEN:

SELECT *
FROM customers
WHERE age NOT BETWEEN 25 AND 30;

Dans cette requête :

  • SELECT *: spécifie que nous souhaitons extraire toutes les colonnes.
  • FROM clients : La table à partir de laquelle les données doivent être extraites.
  • WHERE AGE IS NOT BETWEEN 25 AND 30: Sélectionne les lignes où la valeur de la colonne âge est inférieure à 25 et supérieure à 30.

D'autres exemples de cette méthode pourraient être la localisation de produits dont les quantités sont en dehors d'une plage spécifiée, la recherche de salariés employés en dehors d'une période donnée ou l'identification de consommateurs dont les achats totaux sont inférieurs ou supérieurs à un certain montant.

Utilisation de l'opérateur BETWEEN avec des valeurs textuelles

Bien qu'il soit souvent associé à des plages numériques, l'opérateur SQL BETWEEN peut également être appliqué à des valeurs textuelles.

Imaginons que nous nous retrouvions dans le scénario du grand magasin avec le tableau products. En utilisant la colonne catégorie (qui contient des catégories de produits sous forme de valeurs textuelles), nous voulons récupérer toutes les catégories qui se situent par ordre alphabétique entre des catégories spécifiques.

SELECT *
FROM products
WHERE category BETWEEN 'Electronics' AND 'Toys and Games';

Dans cette requête :

  • SELECT *: indique que nous souhaitons récupérer toutes les colonnes.
  • FROM produits : La table à partir de laquelle les données seront extraites.
  • WHERE category IS BETWEEN 'Electronics' AND 'Toys and Games': Filtre les lignes pour n'inclure que celles dont la valeur de la colonne catégorie est comprise entre 'Electronics' et 'Toys and Games' dans l'ordre alphabétique , inclusivement.

Comme vous pouvez le constater, l'utilisation de l'opérateur SQL BETWEEN avec des valeurs textuelles vous permet de filtrer facilement les données en fonction de l'ordre alphabétique. Un autre exemple pourrait être la récupération d'informations sur les clients dont les noms de famille se situent dans une plage alphabétique spécifique :

SELECT *
FROM customers
WHERE last_name BETWEEN 'B' AND 'G';

De même, dans le scénario du grand magasin, vous pouvez filtrer les colonnes qui suivent une séquence (par exemple, les codes de produits) :

SELECT *
FROM products
WHERE product_code BETWEEN 'C100' AND 'C150';

Ces exemples démontrent non seulement l'aspect pratique de l'opérateur BETWEEN, mais aussi sa polyvalence pour filtrer plus que des données numériques.

Utilisation de l'opérateur SQL BETWEEN avec des dates

L'opérateur BETWEEN de SQL peut également être utile pour sélectionner des données à l'intérieur de périodes de temps spécifiques.

Revenons à notre scénario de grand magasin et imaginons que nous disposons d'une table nommée orders avec une colonne appelée order_date qui contient les dates auxquelles les commandes ont été passées. Examinons comment nous pouvons utiliser cette méthode pour récupérer toutes les commandes passées entre la première semaine d'avril 2024 :

SELECT * FROM sales
WHERE sale_date BETWEEN '2024-04-01' AND '2024-04-07';

Dans cette requête :

  • SELECT *: Indique que nous voulons récupérer toutes les colonnes.
  • FROM sales: Indique la table à partir de laquelle les données seront extraites.
  • WHERE sales_date BETWEEN '2024-04-01' AND '2024-04-07': Filtre les lignes sur celles dont l'adresse order_date est comprise entre le 1er avril 2024 et le 7 avril 2024 inclus.

Important: lorsque l'opérateur BETWEEN est utilisé avec des données de date ou d'horodatage, il inclut à la fois les dates de début et de fin, mais exclut la composante temporelle. L'écriture '2024-04-07' est équivalente à '2024-04-07 00:00:00'. Les résultats de cette requête incluront les lignes allant de '2024-04-01 00:00:00' (c'est-à-dire le 1er avril à 12 heures) à '2024-04-07 00:00:00', ce qui signifie que les ventes effectuées après minuit le 7 avril seront exclues. Pour pallier cette limitation, vous pouvez étendre votre requête comme suit :

SELECT * FROM sales 
WHERE sale_date >= '2024-04-01' AND sale_date <= '2024-04-07';

Pour éviter les erreurs, il est préférable d'utiliser les opérateurs <= (inférieur ou égal à) et >= (supérieur ou égal à), surtout si vous n'êtes pas sûr du type de données. En utilisant cette méthode, vous incluez la plage de dates complète, y compris tous les horodatages compris dans les dates spécifiées.

Il est temps de pratiquer SQL BETWEEN

En conclusion, l'opérateur SQL BETWEEN est un outil indispensable dans votre boîte à outils SQL. Il peut être utilisé sur une variété de types de données, y compris les nombres, le texte et les dates. Sa syntaxe simple et sa nature inclusive en font un choix idéal pour filtrer les lignes sur la base de critères spécifiques.

Cependant, il est important de connaître le comportement de BETWEEN- en particulier lorsqu'il s'agit de valeurs de date et d'horodatage - afin de garantir la fiabilité de vos résultats. Bien que l'opérateur BETWEEN exprime les conditions de plage de manière concise, il est préférable d'utiliser la syntaxe <= AND >= pour inclure une plage de dates complète.

En comprenant la syntaxe, les utilisations et les comportements de SQL BETWEEN, vous pouvez améliorer les performances de vos requêtes et la précision de vos recherches de données. L'opérateur BETWEEN est un outil indispensable pour les experts SQL, car il permet d'optimiser les processus de base de données et d'extraire efficacement les données. Prêt à aller plus loin ? Essayez notre La pratique du SQL et commencez à créer vos propres requêtes BETWEEN!