Dans nos précédents articles sur le langage SQL, nous avons déjà évoqué les conditions. Et dans celui-ci encore, nous allons parler de ce sujet, mais on va plutôt s’orienter vers les opérateurs que l’on peut inclure dans une condition. Celui qui nous intéresse aujourd’hui est BETWEEN. C’est un opérateur logique qui détermine si une valeur est comprise ou non dans un intervalle quelconque.
Dans ce tutoriel, nous allons découvrir comment utiliser la commande SELECT BETWEEN pour trier les données dans un Système de Gestion de Base de Donnée MySQL.
La commande SQL BETWEEN
En SQL, lorsque l’on souhaite sélectionner un ensemble de données compris dans un intervalle, on utilise l’opérateur BETWEEN en combinaison avec la clause WHERE. Les données dans l’intervalle peuvent être des dates, des nombres ou des chaînes de caractères.
SQL BETWEEN : syntaxe
On effectue une requête comprenant la commande SQL BETWEEN en écrivant la syntaxe suivante :
SELECT * FROM table WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2'
Expliquons un peu cette syntaxe :
- valeur1 est une valeur valide qui doit être du même type que les valeurs de nom_colonne et de valeur2. Il va également de même pour valeur2 ;
- AND se comporte comme un espace réservé. Il indique que la valeur de nom_colonne doit se trouver entre valeur1 et valeur2.
La commande affichera en retour toutes les données de la colonne nom_colonne qui sont entre la valeur1 et valeur2.
Illustration de l’opérateur BETWEEN
En guise d’exemple, nous allons considérer le tableau de données ci-dessous :
Maintenant, si l’on veut obtenir les informations sur les personnes possédant un numéro compris entre 4000 et 5000, il faut taper la commande suivante :
SELECT * FROM `clients` WHERE Numéro BETWEEN 4000 AND 5000
Le résultat affichera la liste suivante :
SQL NOT BETWEEN
Voici une méthode pratique et simple à mettre en œuvre si l’on souhaite obtenir l’effet inverse. Avec le mot NOT devant BETWEEN, la commande retournera toutes les valeurs qui ne sont pas comprises entre les valeurs indiquées dans la commande.
Si nous reprenons la table de notre précédent exemple, nous pouvons effectuer la requête suivante pour obtenir les informations sur les personnes dont le numéro n’est pas compris entre 4000 et 5000 :
SELECT * FROM `clients` WHERE Numéro NOT BETWEEN 4000 AND 5000
Le résultat que l’on obtient est ceci :
Utiliser >= (supérieur ou égale) et <= (inférieure ou égale) à la place de BETWEEN
Il existe également d’autres moyens d’obtenir une plage de données soumise à une condition. Ici, nous allons découvrir comment utiliser les opérateurs < et > à la place de BETWEEN pour obtenir le même résultat. La syntaxe, si l’on utilise toujours la table précédente, est la suivante :
SELECT * FROM `clients` WHERE Numéro >= 4000 AND Numéro <= 5000
Et le résultat obtenu est :
Utilisation de SQL BETWEEN avec des valeurs dates
Lorsque les valeurs avec lesquelles on utilise BETWEEN sont des dates, la manière de les exprimer est un peu particulière avec MySQL.
L’instruction ci-dessous récupère et affiche tous les noms qui ont été enregistrés entre le 02/03/2012 et le 14/04/2012 :
SELECT * FROM `etudiant` WHERE date_inscrit BETWEEN '20120302' AND '20120414'
Voici le résultat obtenu à l’issue de cette requête :
La valeur du résultat de BETWEEN
Reprenons la syntaxe de base de BETWEEN :
SELECT * FROM table WHERE nom_colonne BETWEEN 'valeur1' AND 'valeur2'
Le principe est simple ; BETWEEN retourne True si la valeur de nom_colonne est supérieure ou égale à valeur1 et inférieure ou égale à valeur2.
ET lorsque l’on utilise NOT BETWEEN, la valeur de retour est True lorsque la valeur de nom_colonne est inférieure ou égale à valeur1 et supérieure ou égale à valeur2.
Avant de clore cet article, il faut savoir que les anciennes versions des Systèmes de Gestion de Base de Données (SGBD) ne prennent pas en charge BETWEEN. Une autre information importante est que la manière de gérer la clause BETWEEN diffère d’un SGBD à un autre. En effet, certains excluent les valeurs extrêmes de l’intervalle et d’autres considèrent ces valeurs. Renseignez-vous au préalable sur la manière de l’utiliser en fonction du SGBD que vous comptez employer. Cependant, la base est telle que l’on a décrit ici, donc ne vous inquiétez pas.
Voilà, vous savez maintenant tout sur l’opérateur BETWEEN et vous pouvez l’utiliser pour élaborer une condition précise lors de vos requêtes SQL. Si vous souhaitez augmenter vos compétences en Big Data, nous vous invitons à télécharger ce tutoriel sur Spark avec Scala.