English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dans ce tutoriel, vous allez apprendre à utiliser les opérateurs AND et OR dans la clause pour filtrer les enregistrements en fonction de multiples conditions.
Dans le chapitre précédent, nous avons appris à utiliser une seule condition avec la clause WHERE pour obtenir des enregistrements de la table. Mais parfois, vous devez filtrer les enregistrements en fonction de multiples conditions, par exemple, choisir les âges supérieurs à30 ans et le pays/Les utilisateurs de la région américaine, choisir les prix inférieurs à100 dollars et avec une évaluation supérieure à4et autres produits.
L'opérateur AND est un opérateur logique qui combine deux conditions et ne renvoie TRUE que si les deux conditions sont TRUE. Il est généralement utilisé dansSELECT,UPDATE,DELETEduWHEREL'opérateur AND est utilisé dans la clause pour former des conditions pour filtrer les résultats.
SELECT column1_name, column2_name, columnN_nameFROM table_nameWHERE condition1 AND condition2;
Voyons quelques exemples pour illustrer son fonctionnement réel.
Supposons que nous ayons dans la base de données une table nomméeemployeesdans la table, qui 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 extrait des donnéesemployeesLa table renvoie des salaires (salary) supérieurs à7000 etdept_idégal à5de ces employés.
SELECT * FROM employees WHERE salary > 7000 AND dept_id = 5;
Après exécution, vous obtiendrez les résultats suivants :
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+
De même, l'opérateur OR est un opérateur logique qui combine deux conditions, mais il renvoie TRUE si l'une des deux conditions est TRUE.
La requête SQL suivante extrait des donnéesemployeesLa table renvoie des salaires (salary) supérieurs à7000 oudept_idégal à5tous les employés.
SELECT * FROM employees WHERE salary > 7000 OR dept_id = 5;
Vous allez obtenir les résultats suivants :
+--------+--------------+------------+--------+---------+ | 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 | +--------+--------------+------------+--------+---------+
Vous pouvez également combiner AND et OR pour créer des expressions conditionnelles complexes.
La requête SQL suivante retournera les salaires supérieurs à5000,etdept_idégal à1ou5tous les employés.
SELECT * FROM employees WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);
Après l'exécution de la requête ci-dessus, vous obtiendrez le résultat suivant :
+--------+--------------+------------+--------+---------+ | emp_id | emp_name | hire_date | salary | dept_id | +--------+--------------+------------+--------+---------+ | 2 | Tony Montana | 2002-07-15 | 6500 | 1 | | 3 | Sarah Connor | 2005-10-18 | 8000 | 5 | +--------+--------------+------------+--------+---------+