Introduction à la clause WHERE
Comme nous le savons tous, SQL (Structured Query Language) est l'un des langages les plus couramment utilisés pour les bases de données relationnelles (base de données dans laquelle les enregistrements sont enregistrés sous forme de lignes et de colonnes). Dans SQL, des requêtes sont déclenchées pour atteindre la base de données afin d'effectuer les opérations souhaitées, qu'il s'agisse d'opérations DML (Data Manipulation Language), DDL (Data Definition Language) ou DCL (Data Control Language). SQL utilise certaines clauses comme WHERE, GROUP BY, HAVING, ORDER BY qui effectuent des opérations spécifiques. La clause WHERE est utilisée pour appliquer des conditions et filtrer les résultats lors de la récupération ou de la manipulation de données de la base de données. Elle est utilisée avec les instructions SELECT, UPDATE et DELETE et la clause WHERE est facultative pour être utilisée avec elles.
En général, les termes, clause WHERE,
- Permet de filtrer les lignes selon les critères donnés.
- Limite le nombre de lignes renvoyées.
- Suivi d'une condition logique qui renvoie vrai ou faux.
- Fonctionne uniquement si la condition mentionnée retourne true.
- Il peut être utilisé avec des instructions SELECT, UPDATE ou DELETE.
1. Syntaxe avec SELECT
SELECT column1, column2, column3… from table_name WHERE condition;
Ici, SELECT récupérera toutes les données de column1, column2, column3 de la table (nommé table_name) et la clause WHERE applique les conditions aux données récupérées par l'instruction SELECT et les filtre en fonction de la condition mentionnée dans l'instruction.
2. Syntaxe avec UPDATE
UPDATE table_name SET column_name = value WHERE condition;
Ici, Update mettra à jour la valeur du nom_colonne avec la condition where fournie.
Les opérateurs de comparaison et logiques peuvent également être utilisés avec la condition WHERE comme et, ou non, LIKE, <, =, etc.
3. Syntaxe avec DELETE
DELETE from table_name WHERE condition;
Dans la syntaxe ci-dessus:
nom de la table | Nom de la table sur laquelle les opérations doivent être effectuées. |
état | Spécifie la condition de filtre sur laquelle les enregistrements doivent être filtrés |
liste_colonnes | Nom des colonnes du tableau |
Exemples
Considérez un tableau des élèves ayant différentes colonnes et valeurs mentionnées ci-dessous:
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percentage |
1 | Rahul | Agra | 9557806625 | 85 |
2 | Ankit | Delhi | 8855664471 | 75 |
3 | Shailendra | Noida | 7213457896 | 92 |
Scénario 1
Récupérez l'identifiant de l'élève, le nom de l'élève, l'adresse et le pourcentage de tous les élèves qui ont obtenu plus de 80%.
Requete
SELECT Stu_id, Stu_name, Stu_address from students WHERE Stu_percentage > 80;
Résultat:
Nombre d'enregistrements: 2
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 85 |
3 | Shailendra | Noida | 92 |
Scénario # 2
Mettez à jour le pourcentage de Rahul de 2%.
Requete
UPDATE students SET Stu_percentage = Stu_percentage+2 WHERE Stu_name ='Rahul';
Résultat:
Lignes affectées: 1
Si nous frappons la requête pour afficher les champs mis à jour:
Requete
SELECT * from students WHERE Stu_name ='Rahul';
Résultat:
Nombre d'enregistrements: 1
Stu_id | Stu_name | Stu_address | Stu_percentage |
1 | Rahul | Agra | 87 |
Scénario # 3
L'élève Ankit a quitté l'école, alors supprimez tout le dossier de lui du tableau.
Requete
DELETE from students WHERE Stu_name = 'Ankit';
Résultat:
Lignes affectées: 1
Pour afficher l'étudiant de table mis à jour:
Requete
SELECT * from students;
Résultat:
Lignes affectées: 2
Stu_id | Stu_name | Stu_address | Stu_phno | Stu_percenta ge |
1 | Rahul | Agra | 9557806625 | 87 |
3 | Shailendra | Noida | 7213457896 | 92 |
Opérations de la clause WHERE
La clause WHERE contient les conditions de filtrage des valeurs de base de données. Différents opérateurs peuvent être utilisés avec la clause WHERE. Certains d'entre eux sont donnés ci-dessous dans le tableau avec un exemple:
S.No. | Opérateur | La description | Exemple |
1. | ET | Renvoie vrai si les deux conditions correspondent | SÉLECTIONNEZ * parmi les étudiants OERE Stu_name = 'Rahul' et Stu_percentage = 85; |
2. | OU | Renvoie vrai si l'un des
correspond à l'état | SÉLECTIONNEZ * parmi les étudiants OERE Stu_name = 'Rahul' ou Stu_name = 'Shalendra'; |
3. | DANS | La valeur correspond à l'une des multiples valeurs spécifiées | SÉLECTIONNEZ * parmi les étudiants OERE Stu_city IN ('AGRA', 'NOIDA'); |
4. | PAS DEDANS | La valeur ne correspond à aucune des multiples valeurs spécifiées | SÉLECTIONNEZ * parmi les étudiants OERE Stu_city PAS DANS ('AGRA', 'NOIDA'); |
5. | = | Égal | SELECT * parmi les étudiants O students
Stu_name = 'Rahul'; |
6. | > | Plus grand que | SELECT * parmi les étudiants WHERE Stu_percentage> 80; |
sept. | < | Moins que | SELECT * parmi les étudiants WHERE Stu_percentage <78; |
8. | > = | Plus grand ou égal à | SELECT * parmi les étudiants O students Stu_percenetage> = 70; |
9. | <= | Inférieur ou égal à | SELECT * parmi les étudiants WHERE Stu_percenetage <= 70; |
dix. | Pas égal à | SELECT * parmi les étudiants WHERE Stu_percentage 75; | |
11. | ENTRE | La valeur se situe entre une certaine plage | SELECT * parmi les étudiants O students
Stu_percentage ENTRE 70 ET 85; |
12. | COMME | Les valeurs correspondent à un certain modèle. Utilisé pour effectuer des recherches génériques | SELECT * parmi les étudiants WHERE Stu_city LIKE 'AG%'; |
Remarque: Il y a une chose à garder à l'esprit lors de l'utilisation de la clause WHERE: lors de la spécification de la condition, les valeurs numériques ne sont pas entre guillemets simples ('') tandis que les valeurs de texte (varchar) doivent être entre guillemets simples guillemets ('').
Comment fonctionne la clause WHERE en SQL?
Bien que les exemples ci-dessus montrent clairement comment la clause WHERE est utilisée pour filtrer les données selon la condition spécifiée par l'utilisateur et permet l'exécution plus rapide du code SQL car le nombre d'enregistrements renvoyés est limité par la condition. L'optimiseur de requête SQL fonctionne d'abord sur la requête à l'aide de FROM (table sur laquelle l'opération doit être effectuée) pour récupérer, supprimer ou mettre à jour, puis appliquer la clause WHERE aux résultats.
La clause WHERE ne peut être utilisée que lorsque nous devons filtrer les résultats dans une seule table ou une jointure de tables car elle fonctionne sur les données de lignes, mais lorsque dans le cas des fonctions d'agrégation, WHERE ne peut pas être utilisé pour appliquer des conditions à la requête.
Prenons le scénario où la clause WHERE ne peut pas être utilisée:
Scénario: dans un tableau «films», récupérez tous les détails des films qui gagnent plus de 10 crores des années particulières comme (2000, 2010, 2012..etc)
Requete:
SELECT * from movies GROUP BY Year_released HAVING earnings > 10;
L'exemple ci-dessus utilise la clause HAVING au lieu de WHERE, car la clause WHERE ne peut pas être utilisée dans les fonctions d'agrégation alors que HAVING le peut, et c'est également l'une des principales différences entre la clause WHERE et HAVING
Conclusion - Clause SQL WHERE
L'explication ci-dessus montre clairement l'utilisation de la clause WHERE et son implémentation pour différents scénarios dans les requêtes SQL. Avant d'écrire une requête, il faut garder à l'esprit l'utilisation de chaque clause et le scénario dans lequel cette clause ou ce mot clé particulier doit être utilisé.
Articles recommandés
Ceci est un guide de la clause SQL WHERE. Nous discutons ici de l'utilisation de la clause WHERE et de son implémentation pour différents scénarios. Vous pouvez également consulter nos autres articles suggérés -
- Types de jointures dans SQL
- Caractères génériques dans MySQL
- Requête d'insertion SQL
- Clé étrangère en SQL
- 6 principaux types de jointures dans MySQL avec des exemples