Filtrer les données - WHERE

22 Sep 2019 22 Sep 2019 12451 vues ESSADDOUKI Mostafa 6 min de lecture

La clause WHERE en SQL

Définition

La clause SQL WHERE est utilisée pour spécifier une condition lors de l'extraction des données d'une seule table ou de plusieurs tables associées. Si la condition donnée est satisfaite, elle renvoie uniquement une valeur spécifique de la table.

Vous devez utiliser la clause WHERE pour filtrer les enregistrements et extraire uniquement les enregistrements nécessaires.

Utilisations

La clause WHERE est non seulement utilisée dans l'instruction SELECT, mais également dans les instructions UPDATE, DELETE, etc.

Syntaxe

   
WHERE SQL
SELECT colonne1, colonne2, ..., colonneN 
FROM nom_table
WHERE [condition];

Vous pouvez spécifier une condition à l'aide des opérateurs de comparaison ou logiques.

Table d'exemple

Pendant ce cours, nous allons travailler sur la table suivante :

Table - Employes

+----+---------+-----+---------+
| Id | Nom     | Age | Salaire |
+----+---------+-----+---------+
|  1 | Ismail  |  25 | 6000.00 |
|  2 | Mohamed |  30 | 8000.40 |
|  3 | Fatima  |  29 | 6000.00 |
|  4 | Dounia  |  31 | 9000.00 |
|  5 | Omar    |  30 | 7500.00 |
+----+---------+-----+---------+

Exemples d'utilisation

  Exemple n°1

Extraire les employés dont le salaire est supérieur à 7000.

SELECT Id, Nom, Salaire FROM Employes WHERE Salaire > 7000;
Résultat
+----+---------+---------+
| Id | Nom     | Salaire |
+----+---------+---------+
|  2 | Mohamed | 8000.40 |
|  4 | Dounia  | 9000.00 |
|  5 | Omar    | 7500.00 |
+----+---------+---------+

  Exemple n°2

Extraire les employés dont l'âge est entre 25 et 29 ans.

SELECT Id, Nom FROM Employes WHERE age BETWEEN 25 AND 29;
Résultat
+----+--------+
| Id | Nom    |
+----+--------+
|  1 | Ismail |
|  3 | Fatima |
+----+--------+

  Exemple n°3

Extraire le salaire de l'employé dont le nom est "Omar".

SELECT Id, Salaire FROM Employes WHERE Nom = "Omar";
Résultat
+----+---------+
| Id | Salaire |
+----+---------+
|  5 | 7500.00 |
+----+---------+

Les opérateurs AND et OR

Les opérateurs SQL AND et OR permettent de combiner plusieurs conditions pour limiter les données dans une instruction SQL. Ces deux opérateurs sont appelés opérateurs conjonctifs.

Ils permettent d'effectuer plusieurs comparaisons avec différents opérateurs dans la même instruction SQL.

L'opérateur AND

Définition

Cet opérateur affiche uniquement les enregistrements dans lesquels toutes les conditions sont évaluées à True.

Syntaxe

SELECT colonne1, colonne2, ... 
FROM nom_table
WHERE condition1 AND condition2 ... AND conditionN;

  Exemple n°4

Extraire les employés avec salaire > 7000 ET âge entre 25 et 30.

SELECT Id, Nom FROM Employes WHERE Salaire > 7000 AND age BETWEEN 25 AND 30;
Résultat
+----+---------+
| Id | Nom     |
+----+---------+
|  2 | Mohamed |
|  5 | Omar    |
+----+---------+

Mohamed et Omar satisfont les deux conditions : salaire > 7000 (8000.40 et 7500) et âge entre 25 et 30 (30 ans). Dounia a un salaire > 7000 mais âge 31 (hors intervalle).

L'opérateur OR

Définition

Cet opérateur affiche les enregistrements pour lesquels au moins une condition est évaluée à True.

Syntaxe

SELECT colonne1, colonne2, ... 
FROM nom_table
WHERE condition1 OR condition2 ... OR conditionN;

  Exemple n°5

Extraire les employés avec salaire >= 9000 OU âge entre 25 et 29.

SELECT Id, Nom FROM Employes WHERE Salaire >= 9000 OR age BETWEEN 25 AND 29;
Résultat
+----+--------+
| Id | Nom    |
+----+--------+
|  1 | Ismail |
|  3 | Fatima |
|  4 | Dounia |
+----+--------+

Explication des résultats :

  • Ismail (25 ans) : satisfait la condition d'âge (entre 25 et 29)
  • Fatima (29 ans) : satisfait la condition d'âge
  • Dounia (31 ans, salaire 9000) : satisfait la condition de salaire (>= 9000)
  • Mohamed et Omar ont 30 ans (hors intervalle) et salaire < 9000, donc exclus.

Combinaison d'AND et OR

Vous pouvez combiner AND et OR dans une même condition. Il est recommandé d'utiliser des parenthèses pour clarifier l'ordre d'évaluation.

  Exemple n°6

Extraire les employés du département 1 (supposons que nous ayons une colonne Dep) avec salaire > 7000 OU les employés du département 2 avec salaire > 6000.

SELECT * FROM Employes WHERE (Dep = 1 AND Salaire > 7000) OR (Dep = 2 AND Salaire > 6000);

Opérateurs couramment utilisés avec WHERE

OpérateurDescriptionExemple
=Égal àWHERE Nom = "Omar"
<> ou !=Différent deWHERE Age <> 30
>Supérieur àWHERE Salaire > 7000
<Inférieur àWHERE Salaire < 8000
>=Supérieur ou égal àWHERE Age >= 30
<=Inférieur ou égal àWHERE Age <= 25
BETWEENEntre deux valeurs (inclus)WHERE Age BETWEEN 25 AND 30
LIKECorrespondance de motifWHERE Nom LIKE "M%"
INÉgal à une valeur dans une listeWHERE Dep IN (1, 2, 3)
IS NULLValeur NULLWHERE Dep IS NULL
 Exercice pratique

Utilisation de WHERE

 Niveau : Débutant

En utilisant la table Employes, écrivez les requêtes SQL pour :

  1. Trouver les employés qui ont un salaire inférieur à 7000.
  2. Trouver les employés dont l'âge est différent de 30 ans.
  3. Trouver les employés dont le nom est "Ismail" ou "Fatima".
  4. Trouver les employés avec un salaire supérieur à 6500 ET âge supérieur à 28.
Points clés à retenir
  • WHERE filtre les enregistrements selon une condition.
  • On peut utiliser des opérateurs de comparaison (=, <, >, <>, etc.).
  • AND : toutes les conditions doivent être vraies.
  • OR : au moins une condition doit être vraie.
  • BETWEEN : filtre entre deux valeurs (inclus).
  • IN : vérifie si une valeur appartient à une liste.
  • LIKE : recherche par motif (avec % et _).
  • IS NULL / IS NOT NULL : teste les valeurs NULL.
  • On peut combiner AND et OR avec des parenthèses pour contrôler l'ordre d'évaluation.

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.