Filtrer efficacement les données en SQL peut être complexe sans une bonne maîtrise des clauses appropriées.
Sans utiliser correctement la clause WHERE, vous risquez d’obtenir des résultats incomplets ou incorrects, compliquant l’analyse de vos données.
Cet article vous guide à travers l’utilisation de la clause WHERE et ses opérateurs, vous aidant à affiner vos requêtes et obtenir les données nécessaires.
Appréhendez les fondamentaux du langage SQL pour savoir assimiler ses fonctions standards.
Introduction à la clause WHERE SQL
- Syntaxe Générale :
SELECT [DISTINCT] {*, [champ colonne [AS] alias1 [,...]]}
FROM nom_table
WHERE condition;
- Exemple de Requête :
SELECT *
FROM employes
WHERE salaire = 8000;
Explication de la Requête :
- SELECT * :Sélectionne toutes les colonnes de la tableemployes.
- FROM employes :Indique que les données proviennent de la tableemployes.
- WHERE salaire = 8000 :Applique un filtre pour ne renvoyer que les employés dont le salaire est exactement égal à 8000.
- Résultat
La requête renverra uniquement les lignes des employés ayant un salaire de 8000.
Opérateur | Description | Exemple |
---|---|---|
= | Compare l’égalité d’une valeur. | SELECT * FROM employes WHERE salaire = 8000; |
<> ou != | Compare l’inégalité d’une valeur (différent de). | SELECT * FROM employes WHERE fonction <> ‘Manager’; |
> | Compare si une valeur est strictement supérieure à une autre. | SELECT * FROM employes WHERE salaire > 5000; |
< | Compare si une valeur est strictement inférieure à une autre. | SELECT * FROM employes WHERE salaire < 3000; |
>= | Compare si une valeur est supérieure ou égale à une autre. | SELECT * FROM employes WHERE salaire >= 8000; |
<= | Compare si une valeur est inférieure ou égale à une autre. | SELECT * FROM employes WHERE salaire <= 6000; |
BETWEEN | Sélectionne les valeurs dans un intervalle défini (inclusif). | SELECT * FROM employes WHERE salaire BETWEEN 5000 AND 10000; |
IN | Recherche si une valeur est dans une liste de valeurs. | SELECT * FROM employes WHERE fonction IN (‘Manager’, ‘HR’); |
NOT | Exclut les résultats correspondant à une condition. | SELECT * FROM employes WHERE NOT fonction = ‘Analyste’; |
LIKE | Recherche des valeurs correspondant à un modèle avec des jokers (souvent utilisé avec des chaînes de caractères). | SELECT * FROM employes WHERE nom LIKE ‘A%’; |
IS NULL | Filtre les valeurs qui sont NULL. | SELECT * FROM employes WHERE commission IS NULL; |
IS NOT NULL | Filtre les valeurs qui ne sont pas NULL. | SELECT * FROM employes WHERE commission IS NOT NULL; |
AND | Combine plusieurs conditions (toutes les conditions doivent être vraies). | SELECT * FROM employes WHERE salaire > 3000 AND fonction = ‘Développeur’; |
OR | Combine plusieurs conditions (au moins une des conditions doit être vraie). | SELECT * FROM employes WHERE salaire > 3000 OR fonction = ‘Manager’; |
NOT LIKE | Exclut les résultats qui correspondent à un modèle. | SELECT * FROM employes WHERE nom NOT LIKE ‘A%’; |
Tableau 3 : Les opérateurs logiques utilisées dans la cluse WHERE
Explications des opérateurs
- Égalité et comparaison := :compare si deux valeurs sont égales.<> ou != :vérifie si deux valeurs sont différentes.>et<: vérifient les valeurs supérieures ou inférieures.
- Plages et ensembles :BETWEENest utile pour définir des plages de valeurs (nombres, dates, etc.).INvérifie si une valeur fait partie d’une liste définie.
- Correspondances de motifs :LIKEetNOT LIKErecherchent des correspondances basées sur des motifs, souvent utilisés avec des symboles comme % (pour plusieurs caractères) et _ (pour un seul caractère).
- Combinaison de conditions :ANDetORpermettent de combiner plusieurs conditions logiques pour affiner les résultats.
- NULL :IS NULLetIS NOT NULLpermettent de filtrer les valeurs manquantes (NULL) ou existantes.
- Traitement des Opérateurs Logiques avec des Exemples SQL
Je vais vous donner des exemples pour chaque opérateur logique en SQL, en utilisant la table employes qui contient les champs suivants : id , nom , prenom , fonction , salaire , et commission .
- Opérateur = (Égalité)
Exemple :
SELECT *
FROM employes
WHERE salaire = 8000;
Explication :
Ce code sélectionne tous les employés dont le
salaire
est égal à 8000.
Résultat :
Les employés ayant un salaire de 8000 s’afficheront.
-
Opérateur != ou <> (Différent de)
Exemple :
SELECT *
FROM employes
WHERE fonction <> 'Manager';
Explication :
Cette requête retourne tous les employés sauf ceux dont la
fonction
est ‘Manager’.
Résultat :
Tous les employés qui ne sont pas ‘Manager’ s’afficheront.
- Opérateur AND (Et)
Exemple :
SELECT *
FROM employes
WHERE salaire = 3500 AND fonction = 'Manager';
Explication :
Cette requête retourne les lignes où le
salaire
est égal à 3500
et
la
fonction
est ‘Manager’. Les deux conditions doivent être vraies pour que les employés soient sélectionnés.
Résultat :
Quand vous avez besoin que toutes les conditions soient remplies pour filtrer précisément vos données.
- Opérateur OR (Ou)
Exemple :
SELECT *
FROM employes
WHERE salaire = 8000 OR fonction = 'Manager';
Explication :
Cette requête sélectionne les lignes où
salaire
est égal à 8000 ou
fonction
est ‘Manager’. Si l’une des deux conditions est vraie, l’employé sera retourné.
Résultat :
- Opérateur BETWEEN (Entre deux valeurs)
Exemple :
SELECT *
FROM employes
WHERE salaire BETWEEN 5000 AND 10000;
Explication :
Cette requête retourne tous les employés dont le
salaire
est compris entre 5000 et 10000, y compris ces deux valeurs.
Résultat :
- Opérateur IN (Dans une liste de valeurs)
Exemple:
SELECT *
FROM employes
WHERE fonction IN ('Vice-Président', 'Chef des ventes' );
Explication :
Cette requête sélectionne tous les employés qui occupent l’une des fonctions spécifiées (‘Vice-Président’, ‘Chef des ventes’ ).
Résultat :
- Opérateur LIKE (Correspondance partielle)
Exemple :
SELECT *
FROM employes
WHERE nom LIKE 'D%';
Explication :
Cette requête retourne tous les employés dont le
nom
commence par ‘D’. Le symbole % est utilisé pour représenter tout texte qui suit.
Résultat :
- Opérateur IS NULL
Exemple:
SELECT *
FROM employes
WHERE commission IS NULL;
Explication :
Cette requête retourne tous les employés dont la
commission
est
nulle
.
Résultat :
Nous allons maintenant passer à une nouvelle commande essentielle en SQL : GROUP BY . Cette commande est utilisée pour regrouper les résultats en fonction d’une ou plusieurs colonnes, ce qui permet de réaliser des calculs agrégés sur des groupes de données, comme le total, la moyenne ou le comptage de valeurs.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment utiliser la clause WHERE en SQL ?
Quels sont les opérateurs compatibles avec WHERE ?
Comment filtrer les données NULL avec WHERE ?
Comment combiner plusieurs conditions dans WHERE ?
Quand utiliser AND plutôt que OR dans WHERE ?
Conclusion
En maîtrisant la clause WHERE et ses opérateurs, vous pouvez affiner vos requêtes SQL avec précision. Quelles autres techniques SQL souhaitez-vous explorer pour optimiser vos requêtes ?