La clause WHERE en SQL
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.
La clause WHERE est non seulement utilisée dans l'instruction SELECT, mais également dans les instructions UPDATE, DELETE, etc.
Syntaxe
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;+----+---------+---------+ | 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;+----+--------+ | 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";+----+---------+ | 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
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;+----+---------+ | 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
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;+----+--------+ | 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érateur | Description | Exemple |
|---|---|---|
= | Égal à | WHERE Nom = "Omar" |
<> ou != | Différent de | WHERE 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 |
BETWEEN | Entre deux valeurs (inclus) | WHERE Age BETWEEN 25 AND 30 |
LIKE | Correspondance de motif | WHERE Nom LIKE "M%" |
IN | Égal à une valeur dans une liste | WHERE Dep IN (1, 2, 3) |
IS NULL | Valeur NULL | WHERE Dep IS NULL |
Utilisation de WHERE
En utilisant la table Employes, écrivez les requêtes SQL pour :
- Trouver les employés qui ont un salaire inférieur à 7000.
- Trouver les employés dont l'âge est différent de 30 ans.
- Trouver les employés dont le nom est "Ismail" ou "Fatima".
- Trouver les employés avec un salaire supérieur à 6500 ET âge supérieur à 28.
- Salaire inférieur à 7000 :
SELECT * FROM Employes WHERE Salaire < 7000;Résultat : Ismail (6000) et Fatima (6000).
- Âge différent de 30 :
SELECT * FROM Employes WHERE Age != 30;Résultat : Ismail (25), Fatima (29), Dounia (31).
- Nom = "Ismail" OR "Fatima" :
SELECT * FROM Employes WHERE Nom = "Ismail" OR Nom = "Fatima";Résultat : Ismail et Fatima.
- Salaire > 6500 ET âge > 28 :
SELECT * FROM Employes WHERE Salaire > 6500 AND Age > 28;Résultat : Mohamed (30 ans, 8000.40), Dounia (31 ans, 9000), Omar (30 ans, 7500).
- 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.