Guide SQL : Filtrage de Données avec la Clause WHERE

4.1 Utilisation de la clause WHERE

Dans une instruction SELECT, les données sont filtrées en fonction des conditions de recherche spécifiées dans la clause WHERE. Les conditions de recherche (search criteira) sont également appelées conditions de filtre (filter condition). La clause WHERE est utilisée après le nom de la table. Lorsque l'on utilise à la fois ORDER BY et WHERE, ORDER BY doit être placé après WHERE.

MariaDB [guide_sql]> SELECT nom_produit, prix_produit FROM Produits WHERE prix_produit=9.99;
+---------------------+--------------+
| nom_produit         | prix_produit |
+---------------------+--------------+
| Clavier mécanique   |        9.99  |
| Souris sans fil     |        9.99  |
| Webcam HD           |        9.99  |
+---------------------+--------------+
3 rows in set (0.00 sec)

MariaDB [guide_sql]> 
MariaDB [guide_sql]> SELECT nom_produit, prix_produit FROM Produits WHERE prix_produit = 9.99 ORDER BY nom_produit;
+---------------------+--------------+
| nom_produit         | prix_produit |
+---------------------+--------------+
| Clavier mécanique   |        9.99  |
| Souris sans fil     |        9.99  |
| Webcam HD           |        9.99  |
+---------------------+--------------+
3 rows in set (0.00 sec)

MariaDB [guide_sql]> 


4.2 Opérateurs de la clause WHERE

Égal à : = 
Non égal à :!= ou <>. Tous les SGBD ne prennent pas en charge ces deux opérateurs de non-égalité.

Supérieur à :> 
Inférieur à :<

Supérieur ou égal à :>= 
Inférieur ou égal à :<=

Non supérieur à :!> 
Non inférieur à :!<

Entre deux valeurs spécifiées :BETWEEN
Pour les valeurs NULL :IS NULL


4.2.1 Vérification de valeurs uniques

MariaDB [guide_sql]> SELECT nom_produit, prix_produit FROM Produits WHERE prix_produit < 50;
+---------------------+--------------+
| nom_produit         | prix_produit |
+---------------------+--------------+
| Clavier mécanique   |        9.99  |
| Souris sans fil     |        9.99  |
| Webcam HD           |        9.99  |
| Écran 24 pouces     |       45.99  |
| Disque SSD 1TB      |       89.99  |
| Carte graphique     |       120.00 |
| Processeur Intel    |       180.00 |
| Mémoire RAM 16GB    |       75.99  |
+---------------------+--------------+
8 rows in set (0.00 sec)

MariaDB [guide_sql]> 


4.2.2 Vérification de non-correspondance

Lors de la comparaison d'une valeur avec une colonnne de type chaîne de caractères, il est nécessaire d'utiliser des guillemets simples pour délimiter la chaîne. Les valeurs utilisées pour comparer avec une colonne numérique ne nécessitent pas de guillemets.

MariaDB [guide_sql]> SELECT id_fournisseur, nom_produit FROM Produits WHERE id_fournisseur <> 'TEC01';
+---------------+---------------------+
| id_fournisseur| nom_produit         |
+---------------+---------------------+
| INF01         | Clavier mécanique   |
| INF01         | Souris sans fil     |
| INF01         | Webcam HD           |
| PER01         | Disque SSD 1TB      |
| PER01         | Carte graphique     |
+---------------+---------------------+
5 rows in set (0.00 sec)

MariaDB [guide_sql]> 


4.2.3 Vérification de plage de valeurs

Lors de l'utilisation de l'opérateur BETWEEN pour vérifier une plage de valeurs, il est obligatoire de spécifier la valeur de début et la valeur de fin de la plage, et ces deux valeurs doivent être séparées par le mot-clé AND.

MariaDB [guide_sql]> SELECT nom_produit, prix_produit FROM Produits WHERE prix_produit BETWEEN 10 AND 100;
+---------------------+--------------+
| nom_produit         | prix_produit |
+---------------------+--------------+
| Écran 24 pouces     |       45.99  |
| Disque SSD 1TB      |       89.99  |
| Mémoire RAM 16GB    |       75.99  |
| Processeur Intel    |       180.00 |
+---------------------+--------------+
4 rows in set (0.00 sec)

MariaDB [guide_sql]> 


4.2.4 Vérification de valeurs NULL

Lorsqu'une colonne ne contient pas de valeur, on dit qu'elle contient une valeur NULL, ce qui signifie l'absence de valeur (no value). Remarque : lors des filtrages par correspondance et non-correspondance, les lignes contenent des valeurs NULL ne sont pas retournées.

MariaDB [guide_sql]> SELECT nom_produit FROM Produits WHERE prix_produit IS NULL;
Empty set (0.00 sec)

MariaDB [guide_sql]> 
MariaDB [guide_sql]> SELECT nom_client FROM Clients WHERE email_client IS NULL;
+-------------------+
| nom_client        |
+-------------------+
| Boutique Enfants  |
| Magasin de Jeux   |
+-------------------+
2 rows in set (0.00 sec)

MariaDB [guide_sql]> 
MariaDB [guide_sql]> SELECT email_client FROM Clients;
+-------------------------+
| email_client            |
+-------------------------+
| contact@magasinjeux.fr  |
| NULL                    |
| service@boutiqueenfant.fr|
| NULL                    |
| info@magasinjeux.fr     |
+-------------------------+
5 rows in set (0.00 sec)

MariaDB [guide_sql]> SELECT email_client FROM Clients WHERE email_client != 'contact@magasinjeux.fr';
+-------------------------+
| email_client            |
+-------------------------+
| service@boutiqueenfant.fr|
| info@magasinjeux.fr     |
+-------------------------+
2 rows in set (0.00 sec)

MariaDB [guide_sql]> 


Étiquettes: SQL WHERE clause SQL filtrage de données requêtes SQL

Publié le 20 juin à 05h49