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 tableNom de la table sur laquelle les opérations doivent être effectuées.
étatSpécifie la condition de filtre sur laquelle les enregistrements doivent être filtrés
liste_colonnesNom des colonnes du tableau

Exemples

Considérez un tableau des élèves ayant différentes colonnes et valeurs mentionnées ci-dessous:

Stu_idStu_nameStu_addressStu_phnoStu_percentage
1RahulAgra955780662585
2AnkitDelhi885566447175
3ShailendraNoida721345789692

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_idStu_nameStu_addressStu_percentage
1RahulAgra85
3ShailendraNoida92

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_idStu_nameStu_addressStu_percentage
1RahulAgra87

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_idStu_nameStu_addressStu_phnoStu_percenta ge
1RahulAgra955780662587
3ShailendraNoida721345789692

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érateurLa descriptionExemple
1.ETRenvoie vrai si les deux conditions correspondentSÉLECTIONNEZ * parmi les étudiants OERE Stu_name = 'Rahul' et Stu_percentage = 85;
2.OURenvoie vrai si l'un des

correspond à l'état

SÉLECTIONNEZ * parmi les étudiants OERE Stu_name = 'Rahul' ou Stu_name = 'Shalendra';
3.DANSLa valeur correspond à l'une des multiples valeurs spécifiéesSÉLECTIONNEZ * parmi les étudiants OERE Stu_city IN ('AGRA', 'NOIDA');
4.PAS DEDANSLa valeur ne correspond à aucune des multiples valeurs spécifiéesSÉLECTIONNEZ * parmi les étudiants OERE Stu_city PAS DANS ('AGRA', 'NOIDA');
5.=ÉgalSELECT * parmi les étudiants O students

Stu_name = 'Rahul';

6.>Plus grand queSELECT * parmi les étudiants WHERE Stu_percentage> 80;
sept.<Moins queSELECT * 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.ENTRELa valeur se situe entre une certaine plageSELECT * parmi les étudiants O students

Stu_percentage ENTRE 70 ET 85;

12.COMMELes valeurs correspondent à un certain modèle. Utilisé pour effectuer des recherches génériquesSELECT * 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 -

  1. Types de jointures dans SQL
  2. Caractères génériques dans MySQL
  3. Requête d'insertion SQL
  4. Clé étrangère en SQL
  5. 6 principaux types de jointures dans MySQL avec des exemples