Dans cette rubrique, nous allons apprendre à ajouter plusieurs conditions à l'aide de la clause WHERE.
Tout d'abord, comprenons le concept de la clause WHERE.
La clause WHERE est utilisée pour spécifier une condition lors de la récupération des enregistrements d'une table.
La clause WHERE est généralement utilisée avec l'instruction SELECT en SQL
La requête SELECT n'affichera que les enregistrements satisfaisant la condition spécifiée dans la clause WHERE
Il peut y avoir une ou plusieurs conditions spécifiées dans la condition de la clause WHERE d'une requête SELECT.
Les opérateurs AND et OR sont utilisés pour vérifier plusieurs conditions à l'aide de la clause WHERE dans une seule requête.
- Opérateur AND avec clause WHERE
Chaque fois que l'opérateur AND est utilisé entre les conditions avec la clause WHERE pour vérifier plusieurs conditions dans la requête SELECT, les résultats sont affichés lorsque seulement plus d'une condition donnée dans la requête est remplie.
Syntaxe :
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Exemple 1 :
Considérez le tableau des élèves ci-dessous. Nous considérerons le même tableau pour tous les exemples suivants.
Student_RollNo | Student_Name | Student_Gender | Student_MobileNumber | Student_HomeTown | Student_Age | Student_Percentage |
1 | Rohit Plus | Homme | 9890786123 | Lucknow | 23 | 75 |
2 | Kunal Shah | Homme | 7789056784 | Chandigarh | 20 | 68 |
3 | Kartik Goenka | Homme | 9908743576 | Ahemdabad | 22 | 92 |
4 | Anupama Shah | Femme | 8890907656 | Chandigarh | 24 | 94 |
5 | Snehal Jain | Femme | 8657983476 | Sourate | 21 | 94 |
Voyons maintenant quelques exemples pour comprendre ce concept de manière pratique.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Sortie :
Il n'y a qu'un seul enregistrement dans la table des étudiants avec le numéro de rôle 2, qui a le sexe comme masculin et la ville natale comme Chandigarh. Même si l'une des conditions spécifiées n'est pas remplie, alors, dans ce cas, la sortie ne sera pas la même. L'enregistrement/les enregistrements affichés seront différents ou, dans certains cas, la sortie peut être un ensemble vide si aucun enregistrement ne remplit les deux conditions.
Exemple 2 :
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Sortie :
Il n'y a qu'un seul enregistrement avec le numéro de rôle "5" dans la table des étudiants, qui a un âge égal à "21" et un pourcentage égal à "94".
Exemple 3 :
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Sortie :
Parmi tous les enregistrements de la table des étudiants, il n'y a qu'un seul enregistrement avec le numéro de rôle "4", qui a le sexe comme "masculin", la ville natale comme "Chandigarh" et l'âge égal à "24". C'est le seul enregistrement qui remplit les trois conditions.
Exemple 4 :
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Sortie :
Parmi tous les enregistrements de la table des élèves, il n'y a qu'un seul enregistrement avec le numéro de rôle « 3 » dans lequel les trois conditions sont remplies, c'est-à-dire que le sexe est masculin, le nom est égal à « Kartik Goenka » et le pourcentage est égal à « 92 ».
- Opérateur OR avec clause WHERE
Chaque fois que l'opérateur OR est utilisé entre les conditions avec la clause WHERE pour vérifier plusieurs conditions dans la requête SELECT, les résultats sont affichés lorsqu'au moins une condition est remplie parmi toutes les autres conditions écrites dans une requête.
Syntaxe :
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Exemple 1 :
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Sortie :
Dans le tableau des étudiants, il y a quatre enregistrements avec les numéros de rôle 1, 2, 3 et 4 qui ont le sexe comme masculin ou la ville natale comme Chandigarh. Même si les conditions spécifiées sont remplies, cet enregistrement sera considéré comme faisant partie de la sortie. Dans certains cas, la sortie peut être un ensemble vide si aucun enregistrement ne satisfait à l'une ou l'autre des conditions.
Exemple 2 :
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Sortie :
Il y a deux numéros d'enregistrement "4" et "5" dans la table des étudiants, qui ont soit un âge égal à "21", soit un pourcentage égal à "94".
Exemple 3 :
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Sortie :
Parmi tous les enregistrements de la table des étudiants, il y a trois enregistrements avec le numéro de rôle « 2 », « 4 » et « 5 », qui ont l'un ou l'autre sexe comme « femme » ; ville natale comme « Chandigarh » ou âge égal à « 24 ». Ce sont les enregistrements qui satisfont à l'une des trois conditions.
Exemple 4 :
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Sortie :
Parmi tous les enregistrements de la table des étudiants, il y a trois enregistrements avec les numéros de rôle '1', '2' et '3' dans lesquels l'une des trois conditions est remplie, c'est-à-dire que le sexe est masculin, le nom est égal à 'Kartik Goenka' ou pourcentage égal à '92'.
- Opérateurs AND et OR avec clause WHERE dans une seule requête
Dans une requête de clause WHERE avec une instruction SELECT, nous pouvons également utiliser une combinaison d'opérateurs AND et OR dans une seule requête. Le but de l'utilisation des combinaisons d'opérateurs AND et OR dans une seule requête est de tester le niveau supérieur des conditions compliquées.
Syntaxe :
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Exemple 1 :
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Sortie :
Selon les conditions d'une requête, l'enregistrement doit avoir le sexe comme "féminin" et la ville d'origine comme "Chandigarh". L'âge de l'étudiant peut ou non être de 24 ans. Ainsi, il n'y a qu'un seul enregistrement avec le numéro de rôle "4", qui remplit ces conditions. Même si un enregistrement a le sexe comme "féminin" et une ville d'origine autre que "Chandigarh" ou vice versa, cet enregistrement ne sera pas pris en compte dans la sortie.
Exemple 2 :
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Sortie :
Selon les conditions d'une requête, l'enregistrement doit avoir soit le sexe comme "femme", soit la ville d'origine comme "Chandigarh". L'âge de l'étudiant ne doit pas être autre que "24". Donc, il y a deux enregistrements avec le numéro de rôle '4' et '5' qui remplissent ces conditions.
Exemple 3 :
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Sortie :
Il n'y a qu'un seul enregistrement dans la table des étudiants avec le sexe comme "masculin", la ville natale comme "Lucknow" et le pourcentage de l'étudiant doit être "75". L'âge d'un étudiant peut être de 23 ans ou autre que 23 ans.
Exemple 4 :
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Sortie :
Dans la table des étudiants, il y a trois enregistrements dont le sexe est "masculin" et l'âge est "23". La ville natale peut ou non être "Lucknow". De plus, le pourcentage peut ou non être '75'.