MySQL Clause WHERE : AND, OR, IN, NOT IN Exemple de requête
Qu'est-ce que la clause WHERE dans MySQL?
clause WHERE in MySQL est un mot clé utilisé pour spécifier les critères exacts des données ou des lignes qui seront affectées par l'instruction SQL spécifiée. La clause WHERE peut être utilisée avec des instructions SQL telles que INSERT, UPDATE, SELECT et DELETE pour filtrer les enregistrements et effectuer diverses opérations sur les données.
Nous avons examiné comment interroger les données d'un base de données en utilisant l'instruction SELECT du didacticiel précédent. L'instruction SELECT a renvoyé tous les résultats de la table de base de données interrogée.
Il arrive cependant que nous souhaitions restreindre les résultats de la requête à une condition spécifiée. La clause WHERE dans SQL est utile dans de telles situations.
Syntaxe de la clause WHERE
La syntaxe de base de la clause WHERE lorsqu'elle est utilisée dans un MySQL L'instruction SELECT WHERE est la suivante.
SELECT * FROM tableName WHERE condition;
ICI
- « SELECT * FROM nom_table » est la norme Instruction SELECT
- "OÙ" est le mot-clé qui restreint notre ensemble de résultats de requête de sélection et "condition" est le filtre à appliquer sur les résultats. Le filtre peut être une plage, une valeur unique ou une sous-requête.
Regardons maintenant un exemple pratique.
Supposons que nous souhaitions obtenir les informations personnelles d'un membre à partir de la table des membres en fonction du numéro de membre 1, nous utiliserions le script suivant pour y parvenir.
SELECT * FROM `members` WHERE `membership_number` = 1;
Exécuter le script ci-dessus dans MySQL établi sur « myflixdb » produirait les résultats suivants.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
Clause WHERE combinée avec – ET LOGIQUE Operator
La condition OÙ dans MySQL lorsqu'il est utilisé avec l'opérateur logique AND, il n'est exécuté que si TOUS les critères de filtre spécifiés sont remplis.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Clause WHERE combinée avec – OR LOGIQUE Operator
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Clause WHERE combinée avec – IN Mots-clés
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Exécuter le script ci-dessus dans MySQL L'établi contre « myflixdb » produit les résultats suivants.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
Clause WHERE combinée avec – PAS DANS Mots-clés
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Exécuter le script ci-dessus dans MySQL L'établi contre « myflixdb » produit les résultats suivants.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Clause WHERE combinée avec – COMPARAISON Operajeudi
= Égal à
SELECT * FROM `members` WHERE `gender` = 'Female';
Exécuter le script ci-dessus dans MySQL L'établi contre « myflixdb » produit les résultats suivants.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
> Supérieure à
payment_id | membership_number | payment_date | description | amount_paid | external_reference_number |
---|---|---|---|---|---|
1 | 1 | 23-07-2012 | Movie rental payment | 2500 | 11 |
3 | 3 | 30-07-2012 | Movie rental payment | 6000 | NULL |
< > Différent de
SELECT * FROM `movies` WHERE `category_id`<> 1;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
5 | Daddy's Little Girls | NULL | 2007 | 8 |
6 | Angels and Demons | NULL | 2007 | 6 |
7 | Davinci Code | NULL | 2007 | 6 |
9 | Honey mooners | John Schultz | 2005 | 8 |
Résumé
- La clause SQL WHERE est utilisée pour limiter le nombre de lignes affectées par un SELECT, UPDATE ou requête SUPPRIMER.
- La condition WHERE dans SQL peut être utilisée conjointement avec des opérateurs logiques tels que AND et OR, des opérateurs de comparaison tels que ,= etc.
- Lorsqu'il est utilisé avec le ET opérateur logique, tous les critères doivent être remplis.
- Lorsqu'il est utilisé avec l'opérateur logique OU, tous les critères doivent être remplis.
- Le mot clé IN est utilisé pour sélectionner les lignes correspondant à une liste de valeurs.
Casse-tête
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Exécuter le script ci-dessus dans MySQL L'établi donne les résultats suivants.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |