English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Clause WHERE de SQL

Dans ce tutoriel, vous apprendrez comment utiliser SQL pour sélectionner des enregistrements spécifiques dans une table.

Sélection des enregistrements en fonction des conditions

Dans le chapitre précédent, nous avons appris comment obtenir tous les enregistrements d'une table ou d'une colonne. Cependant, dans le monde réel, nous avons généralement besoin de sélectionner, mettre à jour ou supprimer uniquement les enregistrements qui répondent à certaines conditions, par exemple ceux appartenant à un certain âge ou à un certain pays/les utilisateurs de la région, etc.

la clause WHERE est utilisée avecSELECT,UPDATEetDELETECependant, vous verrez dans les prochaines sections comment utiliser cette clause avec d'autres instructions.

Syntaxe

La clause WHERE est utilisée avec la requête SELECT pour extraire uniquement les enregistrements qui répondent aux conditions spécifiées. La syntaxe de base peut être donnée de la manière suivante :

SELECT column_list FROM table_name WHERE condition;

ici,column_listest la colonne de la table de base de données dont vous souhaitez obtenir la valeur/du champNom,par exemplename,age,countryetc. Mais, si vous souhaitez obtenir les valeurs de toutes les colonnes disponibles dans la table, vous pouvez utiliser la syntaxe suivante :

SELECT * FROM table_name WHERE condition;

Maintenant, regardons quelques exemples pour démontrer leur fonctionnement réel.

Supposons que nous ayons dans la base de données une table nomméeemployeesqui contient les enregistrements suivants :

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

en utilisant la clause WHERE pour filtrer les enregistrements

La requête SQL suivante récupérera les enregistrements deemployeesretournant dans le tableau son salaire supérieur à7000 de tous les employés employee . La clause WHERE ne fait que filtrer les données non nécessaires.

SELECT * FROM employees
WHERE salary > 7000;

Après l'exécution, la sortie sera comme suit :

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

Comme vous le voyez, la sortie ne contient que les salaires supérieurs à7000 des employés. De manière similaire, vous pouvez obtenir des enregistrements à partir de colonnes spécifiques, comme suit :

SELECT emp_id, emp_name, hire_date, salary
FROM employees
WHERE salary > 7000;

Après l'exécution de la requête ci-dessus, vous obtiendrez la sortie suivante :

+--------+--------------+------------+--------+
| emp_id | emp_name     | hire_date  | salary |
+--------+--------------+------------+--------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |
+--------+--------------+------------+--------+

La requête suivante récupérera les employés dont l'ID est2des enregistrements des employés.

SELECT * FROM employees
WHERE emp_id = 2;

Cette instruction produira la sortie suivante :

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
+--------+--------------+------------+--------+---------+

Cette fois, nous ne obtenons qu'une ligne en sortie, caremp_idPour chaque employé, c'est unique.

Opérateurs autorisés dans la clause WHERE

SQL supporte de nombreux opérateurs qui peuvent être utilisés dans la clause WHERE, le tableau suivant résume les opérateurs les plus importants.

OpérateurDescriptionExemple en ligne
ÉgalÉgalVérifier si l'id est égal 2
SupérieurPlus queVérifier si l'âge est supérieur 30
Moins queMoins queVérifier si l'âge est inférieur 18
Supérieur ou égalSupérieur ou égalVérifier si la valeur du rating est supérieure ou égale à 4
Inférieur ou égalInférieur ou égalInférieur ou égal 100
Vérifier si la valeur du prix est inférieure ou égale àLIKECorrespondance de modèle simple
INVérifier si la valeur spécifiée correspond à n'importe quelle valeur de la liste ou de la sous-requêteVérifier si la valeur spécifiée correspond à n'importe quelle valeur de la liste ou de la sous-requête
ETVérifier si la valeur spécifiée est comprise entreVérifier si la valeur spécifiée est comprise entre 3 ET 5