Retour à la liste des articles Articles
7 minutes de lecture

Qu'est-ce que la clause WHERE en SQL ?

La clause WHERE est un élément fondamental du langage SQL. Cette clause filtre les résultats et applique des conditions aux requêtes SQL. Elle est le plus souvent utilisée avec l'instruction SELECT. Si vous êtes totalement novice en la matière, vous pouvez apprendre les bases du SQL, y compris WHERE, dans notre cours SQL pour les débutants .

Cet article explique clairement comment utiliser WHERE dans une requête SQL. Après l'avoir lu, vous aurez la confiance et les connaissances nécessaires pour intégrer la clause WHERE dans votre travail quotidien.

Syntaxe de la clause WHERE de SQL

La syntaxe de la clause WHERE de SQL est simple à comprendre. Elle doit venir après le mot-clé FROM dans votre requête SQL :

SELECT *
FROM table
WHERE id = 100

Dans cet exemple, il existe une colonne de nombres entiers appelée id. Nous sélectionnons toutes les lignes où la valeur de la colonne id est égale à 100.

Exemples de clauses WHERE SQL

L'une des meilleures façons d'apprendre le langage SQL est de l'utiliser. Nous allons donc étudier différents exemples d'utilisation de la clause WHERE. Vous pourrez constater à quel point elle est utile dans les situations du monde réel !

Imaginons que nous gérions et possédions une salle de sport. Lorsque les gens s'inscrivent comme membres de la salle de sport, ils nous donnent quelques informations de base. Ces informations sont stockées dans notre table members qui contient un identifiant unique pour chaque membre, son nom et son prénom, son âge et la date à laquelle il a rejoint la salle de sport.

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
4AngelinaJolie452019-04-02
5MerylStreep712014-03-21

Si vous êtes totalement novice en SQL ou si vous avez besoin de rafraîchir vos connaissances sur l'instruction SELECT, prenez le temps de lire cet article. SELECT apparaîtra tout au long de cet article, il est donc important que vous le compreniez.

Utilisation de WHERE avec des nombres

Si nous voulons récupérer les détails d'un de nos membres et que nous connaissons son identifiant unique, nous pouvons écrire une requête comme celle-ci :

SELECT * 
FROM members 
WHERE id = 3

Cela permettrait de récupérer toutes les données de ce membre, Tom Hanks :

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Utilisation de WHERE avec du texte

L'exemple précédent utilisait WHERE en conjonction avec une valeur numérique de notre colonne id. Cependant, vous pouvez utiliser WHERE avec de nombreux types de données différents. Voyons un exemple d'utilisation de la clause WHERE avec une valeur texte. Dans ce cas, nous allons regarder dans nos colonnes VARCHAR, FirstName et LastName.

SELECT * 
FROM members 
WHERE FirstName = 'Tom' AND LastName = 'Hanks'

Remarquez que les valeurs de texte que nous voulons faire correspondre sont entourées de guillemets simples. Vous devez procéder ainsi chaque fois que vous incluez une valeur de texte dans votre requête. L'exécution de cette requête renvoie les données suivantes :

idFirstNameLastNameAgeDateJoined
3TomHanks642017-02-27

Fantastique ! C'est exactement le résultat que nous voulions.

Regardez à nouveau la requête. Avez-vous remarqué l'opérateur AND? La clause WHERE est souvent combinée avec l'utilisation de trois opérateurs SQL différents : AND, OR et NOT:

  • Une clause WHERE avec AND exige que les deux conditions soient vraies.
  • Une clause WHERE avec OR exige que l'une ou l'autre des conditions soit vraie.
  • Une clause WHERE avec NOT exige que la condition spécifiée ne soit pas vraie.

Essayez ces opérateurs par vous-même en modifiant la requête utilisée ci-dessus. Remarquez l'effet que cela a sur les données renvoyées. La meilleure façon de bien comprendre ces opérateurs est de lire des tutoriels consacrés à ces derniers et de vous entraîner à rédiger des requêtes incluant les opérateurs AND, OR et NOT. Voici d'autres façons utiles de pratiquer SQL en ligne.

Utilisation de WHERE pour obtenir une plage de valeurs

Notre prochain exemple portera sur l'utilisation des opérateurs de comparaison (<,>,>=,<=,!=) en conjonction avec l'opérateur SQL AND que nous venons d'aborder. Imaginons que nous voulions cibler tous les quinquagénaires avec une offre promotionnelle. Comment allons-nous isoler les membres dont l'âge est compris entre 50 et 59 ans ? Examinez la requête SQL ci-dessous :

SELECT * 
FROM members 
WHERE Age >= 50 AND Age < 60

Portez une attention particulière à la syntaxe qui suit le mot-clé WHERE.

Cette requête SQL, traduite en anglais simple, se lit simplement comme suit : "Select all from members where age is greater than or equal to 50 and age is less than 60". En l'exécutant, on obtient le résultat suivant :

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15

Nous y sommes ! Tous nos membres qui ont la cinquantaine ont été retournés. Nous pouvons maintenant cibler ces membres avec notre offre spéciale à venir.

Ce ne sont là que quelques-unes des façons dont vous pouvez utiliser la clause SQL WHERE pour vous aider à affiner vos requêtes. L'un des aspects les plus importants de SQL est la possibilité de filtrer de grandes quantités de données; la clause WHERE vous aide à y parvenir.

Utilisation de WHERE avec UPDATE

La clause WHERE peut également être combinée avec les instructions UPDATE et DELETE. UPDATE est utilisée pour modifier des enregistrements existants dans votre base de données. L'instruction DELETE est utilisée pour supprimer complètement un enregistrement de votre base de données.

Alors, comment fonctionne l'utilisation de UPDATE en conjonction avec la clause WHERE? Imaginons qu'Angelina Jolie, membre du club de gym, se soit récemment mariée et ait pris le nom de famille de son mari. Nous devons mettre à jour son nom de famille dans notre base de données. Pour ce faire, vous devez trouver l'adresse id pour Angelina Jolie et l'utiliser dans votre requête :

UPDATE members SET LastName = 'Clooney' WHERE id = 4

La colonne que vous souhaitez mettre à jour suit le mot-clé SET. Il est très important que vous incluiez la clause WHERE lorsque vous utilisez l'instruction UPDATE; si vous ne le faites pas, LastName prendra la valeur "Clooney" pour tous les enregistrements de la table.

Voyons maintenant l'effet de cette requête sur notre ensemble de données en exécutant la requête suivante :

SELECT id, FirstName, LastName 
FROM members 
WHERE id = 4
idFirstNameLastName
4AngelinaClooney

Succès ! Comme vous pouvez le constater, les données ont été correctement mises à jour. UPDATE est un outil puissant qui vous permet de mettre à jour toute valeur incorrecte dans votre ensemble de données.

Utilisation de WHERE avec DELETE

Que faire si nous voulons supprimer entièrement un enregistrement de notre table de base de données ? L'utilisation de WHERE en combinaison avec l'instruction DELETE rend cela possible. La syntaxe de DELETE est simple et, appliquée à notre exemple, elle se présente comme suit :

DELETE FROM members 
WHERE id = 4

Nous utilisons notre clause WHERE pour spécifier exactement l'enregistrement que nous voulons supprimer. Il est important de noter que si plusieurs enregistrements ont la même valeur id (dans ce cas, 4), tous ces enregistrements seront supprimés de la table.

Soyez très prudent lorsque vous utilisez l'instruction DELETE; il est conseillé de toujours commencer par SELECT les enregistrements, afin de savoir exactement ce que vous supprimez.

Nous pouvons voir l'effet de notre instruction DELETE en sélectionnant tous nos enregistrements :

SELECT * 
FROM members 

L'exécution de cette requête SQL produit le jeu de résultats suivant :

idFirstNameLastNameAgeDateJoined
1WillSmith522020-08-23
2BradPitt562018-06-15
3TomHanks642017-02-27
5MerylStreep712014-03-21

Trouver des données exactes avec la clause WHERE de SQL

Vous avez maintenant la possibilité de trouver et d'interagir avec les données exactes que vous souhaitez. WHERE est un outil extrêmement puissant dans votre arsenal. Vous pouvez utiliser cette clause en conjonction avec UPDATE, DELETE et SELECT. Cela vous permet de manipuler et de présenter les données d'innombrables façons - les possibilités sont infinies !

Si vous souhaitez continuer à apprendre SQL à l'aide d'une ressource efficace et éprouvée, envisagez notre cours SQL pour les débutants , qui vous permettra d'acquérir une connaissance fondamentale de SQL.