English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous apprendrez comment utiliser SQL pour sélectionner des enregistrements spécifiques dans une table.
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.
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 | +--------+--------------+------------+--------+---------+
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.
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érateur | Description | Exemple en ligne |
---|---|---|
Égal | Égal | Vérifier si l'id est égal 2 |
Supérieur | Plus que | Vérifier si l'âge est supérieur 30 |
Moins que | Moins que | Vérifier si l'âge est inférieur 18 |
Supérieur ou égal | Supérieur ou égal | Vérifier si la valeur du rating est supérieure ou égale à 4 |
Inférieur ou égal | Inférieur ou égal | Inférieur ou égal 100 |
Vérifier si la valeur du prix est inférieure ou égale à | LIKE | Correspondance de modèle simple |
IN | Vérifier si la valeur spécifiée correspond à n'importe quelle valeur de la liste ou de la sous-requête | Vérifier si la valeur spécifiée correspond à n'importe quelle valeur de la liste ou de la sous-requête |
ET | Vérifier si la valeur spécifiée est comprise entre | Vérifier si la valeur spécifiée est comprise entre 3 ET 5 |