Retour à la liste des articles Articles
3 minutes de lecture

Filtrage SQL 101

Parfois, les requêtes SQL renvoient beaucoup de données dont vous n'avez pas besoin. Dans cet article, nous allons examiner un exemple simple de filtrage de requêtes SQL pour réduire la complexité de vos données.

Pour apprendre à filtrer des données en SQL, il est essentiel de comprendre les bases de l'algèbre booléenne. Il s'agit simplement d'un terme fantaisiste utilisé par les mathématiciens pour décrire des expressions impliquant des valeurs logiques (vrai/faux) et leurs opérateurs associés (et, ou, pas, etc.). Ne vous laissez pas décourager par ce jargon ; le filtrage n'est que du bon sens formalisé par les mathématiques.

Prenons l'exemple d'une simple table de clients :

Cette table contient tous les clients de notre animalerie fictive. Nous répertorions le nom, le prénom, la ville de résidence, le pays de résidence, la date de naissance et le type d'animal pour chaque client qui a visité notre magasin.

Bien entendu, nous ne sommes pas toujours intéressés par l'examen de chacun des clients de la table. Nous pouvons souhaiter filtrer le tableau pour afficher les données de tous les clients qui, par exemple, vivent à Berlin. Nous filtrerions les données à l'aide d'une simple expression dans la clause WHERE de notre requête :

SELECT * FROM customers WHERE city = 'Berlin';

Ici, nous appliquons la condition de filtrage avec l'opérateur d'égalité (=), que vous pouvez lire à haute voix comme "IS". En d'autres termes, la requête ci-dessus demande à la base de données de sélectionner toutes les données des clients dont la ville est Berlin. Plutôt simple, non ?

Exclusion d'enregistrements des ensembles de résultats

Comment procéder pour poser l'inverse de la question précédente ? C'est-à-dire, comment trouver tous les clients sauf ceux qui vivent à Berlin ? Il suffit d'appliquer l'opérateur d'exclusion ( !) à l'opérateur d'égalité pour obtenir l'opérateur d'inégalité composite (!=). Nous écririons donc

SELECT * FROM customers WHERE city != 'Berlin';

Filtrage des dates

Voyons maintenant comment filtrer les dates en SQL. Supposons que nous voulions trouver tous les clients nés après 1984-01-01. L'expression logique équivalente devrait demander une date supérieure à cette constante. Nous écririons donc la requête suivante :

SELECT * FROM customers WHERE date_of_birth > '1984-01-01';

Naturellement, nous avons utilisé l'opérateur plus grand que (>). Si nous voulions demander l'inverse, c'est-à-dire récupérer les données de tous les clients nés le ou avant le 1984-01-01, nous changerions le signe :

SELECT * FROM customers WHERE date_of_birth <= '1984-01-01';

Conditions composées

Que faire si nous voulons combiner certaines conditions et trouver tous les clients qui, par exemple, sont nés après le 01/01/1984, possèdent un chien et sont situés à Berlin ? Nous enchaînons nos conditions de filtrage les unes après les autres (sans ordre particulier) en utilisant l'opérateur et. Voici la requête :

SELECT * FROM customers WHERE date_of_birth > '1984-01-01' and pet ='Dog' and city = 'Berlin';

Si nous voulons sélectionner tous les clients qui résident à Berlin ou qui ont un chien, nous remplaçons simplement le ET par un OU:

SELECT * FROM customers WHERE pet ='Dog' or city = 'Berlin';

Vous voulez en savoir plus ?

Dans ce tutoriel simple, vous avez appris à filtrer des données en SQL à l'aide d'opérateurs booléens et de conditions. Bien sûr, il ne s'agissait que d'une introduction : l'application de filtres est une compétence que vous devez maîtriser pour devenir compétent en SQL. Pour acquérir plus d'expérience pratique sur le le filtrage des tables en SQL, consultez cette section de notre cours de notre cours SQL pour les débutants. Et n'oubliez pas : la pratique est la clé de la maîtrise de SQL !