SQL : La commande WHERE
En langage SQL la commande WHERE permet d’extraire des données à partir de conditions prédéfinies par l’utilisateur. Découvrez des cas concrets !
Dans le royaume sacré des bases de données relationnelles, le SQL fait figure de langage magique. Devenu incontournable de par sa capacité à extraire les secrets les mieux gardés des forteresses obscures et complexes que constituent ces tables de données, beaucoup convoitent sa maîtrise. Mais ce langage est riche et son apprentissage exige patience et rigueur. Parmi toutes les requêtes qui le composent, la maîtrise de la commande WHERE est indispensable. DataBird vous propose aujourd’hui de découvrir tous les secrets de cette commande. Avec à la clé, la possibilité d’extraire de ces bases de données des informations qui feront de vous une figure incontournable de l’analyse de données auprès de pairs.
La commande WHERE : l’extraction de données conditionnelle
Le langage SQL, c’est avant tout un langage qui permet d’interagir avec un système de gestion de bases de données relationnelles (SGBDR). À travers les requêtes que vous exprimez en SQL, il vous est en effet possible de récupérer des tables de données dont la structure et le contenu dépendent de la requête envoyée.
Pour découvrir le langage SQL, suivez notre formation gratuite dédiée !
La commande WHERE est utilisée dans un cas bien précis : n’extraire que certaines lignes d’une table, selon une condition que vous aurez prédéfinie.
De manière théorique, voici comme cette commande est utilisée :
Si cela vous paraît trop simple, rassurez-vous, nous verrons plus loin dans cet article qu’il existe en réalité diverses conditions que l’on peut combiner.
Mais contentons-nous ! Cela nous offre en réalité une grande flexibilité sur les éléments que l’on souhaite extraire de la base de données.
De manière plus concrète, voici un exemple d’utilisation de cette commande WHERE. Si l’on considère la table suivante, intitulée « entreprises » :
Et que l’on exprime la requête suivante à l’aide de la commande WHERE :
Alors la requête nous renverra la table suivante :
Pour rappel, la commande SELECT * est une formule magique du SQL : elle retourne toutes les colonnes du tableau sans avoir besoin de spécifier le nom de toutes les colonnes. Un gain de temps précieux, vous aurez l’occasion de le constater avec la pratique.
La commande WHERE et les divers opérateurs de comparaisons
Retroussons nos manches et allons un peu plus loin dans la difficulté : afin d’offrir aux utilisateurs une grande finesse dans l’extraction de données, il existe divers opérateurs de comparaison.
Chacun d’entre eux répond à une logique d’extraction différente. Voici un aperçu des principaux opérateurs :
Mise en pratique de ces opérateurs de comparaison
Pour rendre l’utilisation de ces opérateurs plus concrète (et enfin passer à la pratique), voici quelques exemples plus parlants !
Tous ces exemples s'appuient sur la table suivante, intitulée ‘entreprises’ :
Opérateurs « > » et « < ».
L’utilisation de ces opérateurs est assez intuitive. Considérons la requête suivante, qui permet d’extraire les données sur les entreprises de (strictement) plus de 3 000 employés :
Tu l’auras sans doute anticipé, on obtient le résultat suivant :
À noter que si l’on avait émis la requête avec l’opérateur « >= » (c’est-à-dire qu’on souhaite identifier les entreprises de 3 000 employés ou plus) :
On aurait obtenu la table suivante :
Une petite subtilité qui peut changer beaucoup de choses au final.
Opérateur « IN »
L’opérateur IN permet d’extraire des lignes en vérifiant que la valeur d’une colonne est comprise dans un éventail de valeurs spécifiées par l’utilisateur.
Ainsi, la requête suivante permet de sélectionner les entreprises basées à New York ou Limoges :
On récupère la table suivante :
Pour ceux qui se le demandent, soulignons qu’il n’y a pas de limites au nombre d’arguments passés avec l’opérateur IN.
De manière symétrique, on peut utiliser l’opérateur NOT IN qui permet de ne sélectionner que les lignes dont l’une des colonnes ne fait pas partie d’une liste d’arguments spécifiée par l’utilisateur.
Ainsi, si l’on souhaite identifier les entreprises qui ne sont pas basées à New York, Paris ou Dubaï :
Ce qui nous renverra la table suivante :
Opérateur « BETWEEN »
L’opérateur BETWEEN est particulièrement utile lorsque vous cherchez à identifier les lignes dont la valeur d’une colonne appartient à un certain intervalle. L’intervalle peut porter sur des nombres, mais également sur des dates.
Ainsi, si l’on cherche les entreprises composées de 1 000 à 5 000 employés, on réalisera la requête suivante :
On obtiendra dans notre cas :
De même, si l’on cherche à identifier les entreprises créées entre le 1er janvier 1990 et le 1er janvier 2010, on peut faire la requête suivante :
On extrait alors la table suivante :
Opérateur « LIKE »
L’opérateur LIKE permet de spécifier une condition sur une chaîne de caractères. Vous pouvez l’utiliser sous différentes formes. Celles-ci permettent d’identifier les lignes dont l’attribut d’une colonne :
- commence par une certaine lettre ou groupe de lettres ;
- se termine par une certaine lettre ou groupe de lettres ;
- contient un certain groupe de lettres.
Bref, cet opérateur est extrêmement utile pour rechercher des informations par rapport à une chaîne de caractère dont vous ne connaissez pas exactement l’orthographe. Ci-dessous, quelques exemples pour comprendre les cas d’utilisation de cet opérateur.
On peut chercher à identifier les entreprises dont le nom commence par SQL. Dans ce cas, il faudra utiliser la requête suivante :
La requête renvoie alors :
À noter que dans le cadre de l’utilisation de cet opérateur, le caractère « % » remplace tous les autres caractères. On peut donc l’utiliser pour rechercher les entreprises dont le nom se termine par « Corporation », grâce à la requête suivante :
On obtient alors :
Suivant cette même logique, on peut utiliser l’opérateur LIKE pour diverses opérations :
- Rechercher une chaîne de caractère qui contient un caractère ou un groupe de caractères avec LIKE %exemple% si l’on cherche les chaînes de caractères qui contiennent « exemple ».
- Rechercher une chaîne de caractère qui commence et se termine avec un certain groupe de caractère avec LIKE Ex%ple si l’on cherche les chaînes de caractères qui commencent par « Ex » et terminent par « ple ».
Plus d’informations sur cet opérateur LIKE sur le site SQL.
{{banniere-article}}
Opérateur « IS NULL »
Il est possible que les bases de données que vous manipulez contiennent des champs vides. L’opérateur IS NULL teste pour une ligne donnée si la valeur d’une colonne est vide.
Inversement, l’opérateur IS NOT NULL vous permet de ne sélectionner que les lignes pour lesquelles le champ de la colonne étudiée est bien rempli.
Ainsi si l’on considère la table suivante, intitulée « company » :
On peut chercher à extraire uniquement les lignes pour lesquelles le champ ‘Ville’ a bien été rempli. La requête associée est donc :
On obtient alors :
Nota bene : Une valeur NULL est différente d’un zéro ou même d’un champ contenant une chaîne de caractère constituée d’espace. Il s’agit d’un champ qui n’a pas été rempli.
Pour aller plus loin, découvrez nos bootcamps, formations intensives pour acquérir toutes les compétences nécessaires et développer votre réseau dans la data !
Point de vigilance sur la commande WHERE
De nombreux débutants (dont vous ne ferez plus partie à la fin de cet article) commettent des erreurs liées à une confusion entre les commandes WHERE et HAVING. Cette dernière est en réalité utilisée pour réaliser un conditionnement après la réalisation d’une agrégation (avec la commande GROUP BY).
Ceci étant dit, vous n'aurez plus d’excuses si vous faites cette erreur !
Pour plus d’information sur cette erreur fréquente, n'hésitez pas à consulter un descriptif de la fonction HAVING.
Conclusion
Grâce à cette commande WHERE, vous êtes désormais en mesure d’interagir avec des bases de données, qui commencent progressivement à livrer leurs premiers secrets.
Certes, les requêtes sont encore un peu basiques, mais patience ! Cette commande est une première étape vers l’élaboration de requêtes plus complexes. Envie d’aller plus loin ? Formez-vous en ligne au langage SQL dans son ensemble.
Vous êtes pressé et vous vous sentez déjà prêt à aller plus loin ? Découvrez dès maintenant notre offre de formation complète.