Assister à notre prochaine Journée Portes Ouvertes
Rejoignez-nous le jeudi 02 mai dès 18h30 pour notre Journée Portes Ouvertes en live. Explorez le bootcamp Databird ainsi que nos programmes de formation data.
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.
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 :
SELECT nom_colonnes FROM nom_table WHERE condition
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 » :
Id
Nom
Nbr_employes
Ville
1
DataBird
20
Paris
2
SQL Corporation
3000
New York
3
SQL Company
2500
Dubaï
Et que l’on exprime la requête suivante à l’aide de la commande WHERE :
SELECT * FROM entreprises WHERE Ville = ‘Paris’
Alors la requête nous renverra la table suivante :
Id
Nom
Nbr_employes
Ville
1
DataBird
20
Paris
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 :
Opérateur de comparaison
Description
=
Teste l’égalité
<> ou !=
Teste l’inégalité
<
Inférieur à
>
Supérieur à
<=
Inférieur ou égal à
>=
Supérieur ou égal à
IN
Spécifie plusieurs valeurs possibles d’une colonne
BETWEEN
Valeurs pouvant être comprises dans un certain intervalle spécifié par l’utilisateur (uniquement applicable aux nombres ou dates)
LIKE
Recherche d’un pattern dans une chaîne de caractères
IS NULL
Valeur nulle
IS NOT NULL
Valeur non nulle
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’ :
Id
Nom
Nbr_employes
Ville
Date_creation
1
DataBird
20
Paris
2020-01-01
2
SQL Corporation
3000
New York
1974-03-15
3
SQL Company
2500
Dubaï
1986-08-11
4
Python Corp.
10 000
New York
1991-12-28
5
SQL Père & Fils
7
Limoges
1997-02-08
6
SGBDR Factory
250
Bangkok
2009-12-17
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 :
SELECT * FROM entreprises WHERE Nbr_employes > 3000
Tu l’auras sans doute anticipé, on obtient le résultat suivant :
Id
Nom
Nbr_employes
Ville
Date_creation
4
Python Corp.
10 000
New York
1991-12-28
À 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) :
SELECT * FROM entreprises WHERE Nbr_employes >= 3000
On aurait obtenu la table suivante :
Id
Nom
Nbr_employes
Ville
Date_creation
2
SQL Corporation
3000
New York
1974-03-15
4
Python Corp.
10 000
New York
1991-12-28
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 :
SELECT * FROM entreprises WHERE Ville IN (‘New York’, ‘Limoges’)
On récupère la table suivante :
Id
Nom
Nbr_employes
Ville
Date_creation
2
SQL Corporation
3000
New York
1974-03-15
4
Python Corp.
10 000
New York
1991-12-28
5
SQL Père & Fils
7
Limoges
1997-02-08
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ï :
SELECT * FROM entreprises WHERE Ville NOT IN (‘New York’, ‘Paris’, ‘Dubaï’)
Ce qui nous renverra la table suivante :
Id
Nom
Nbr_employes
Ville
Date_creation
5
SQL Père & Fils
7
Limoges
1997-02-08
6
SGBDR Factory
250
Bangkok
2009-12-17
Opérateur « BETWEEN »
L’opérateur BETWEEN est particulièrement utile lorsque vous cherchez à identifierles 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 :
SELECT * FROM entreprises WHERE Nbr_employes BETWEEN 1000 AND 5000
On obtiendra dans notre cas :
Id
Nom
Nbr_employes
Ville
Date_creation
2
SQL Corporation
3000
New York
1974-03-15
3
SQL Company
2500
Dubaï
1986-08-11
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 :
SELECT * FROM entreprises WHERE Date_creation BETWEEN 1990-01-01 AND 2010-01-01
On extrait alors la table suivante :
Id
Nom
Nbr_employes
Ville
Date_creation
4
Python Corp.
10 000
New York
1991-12-28
5
SQL Père & Fils
7
Limoges
1997-02-08
6
SGBDR Factory
250
Bangkok
2009-12-17
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 :
SELECT * FROM entreprises WHERE Nom LIKE ‘SQL%’
La requête renvoie alors :
Id
Nom
Nbr_employes
Ville
Date_creation
2
SQL Corporation
3000
New York
1974-03-15
3
SQL Company
2500
Dubaï
1986-08-11
5
SQL Père & Fils
7
Limoges
1997-02-08
À 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 :
SELECT * FROM entreprises WHERE Nom LIKE ‘%Corporation’
On obtient alors :
Id
Nom
Nbr_employes
Ville
Date_creation
2
SQL Corporation
3000
New York
1974-03-15
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 » :
Id
Nom
Nbr_employes
Ville
Date_creation
1
DataBird
20
2020-01-01
2
SQL Corporation
3000
New York
1974-03-15
3
SQL Company
2500
1986-08-11
4
Python Corp.
10 000
New York
1991-12-28
On peut chercher à extraire uniquement les lignes pour lesquelles le champ ‘Ville’ a bien été rempli. La requête associée est donc :
SELECT * FROM company WHERE Ville IS NOT NULL
On obtient alors :
Id
Nom
Nbr_employes
Ville
Date_creation
2
SQL Corporation
3000
New York
1974-03-15
4
Python Corp.
10 000
New York
1991-12-28
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.
Venez assister à notre Journée Portes Ouvertes en live le jeudi 02 mai à 18h30
Rejoignez-nous le jeudi 02 mai dès 18h30 pour notre Journée Portes Ouvertes en live. Explorez le bootcamp DataBird ainsi que nos programmes de formation data.
Pour préparer l’année 2024, Databird vous propose une petite révision sur le requêtage SQL. Voici 6 requêtes à connaître obligatoirement en 2024 pour coder en SQL.
Le monde de la data vous intéresse et vous souhaitez en savoir plus ? Découvrez le langage SQL et ses applications dans l’exploitation de base de données.
Le NoSQL est une des bases de données les plus utilisées dans le Big Data. Sa simplicité et sa flexibilité en font un outil puissant pour les Data Analysts.