Une fois que vous pouvez écrire une requête SELECT de base, l'étape suivante est d'apprendre à filtrer les lignes avec précision, à trier par plusieurs colonnes et à résumer les données à l'aide de fonctions d'agrégation. Ce sont les outils qui transforment les tables de base de données brutes en réponses utiles.
Conditions de comparaison
La clause WHERE prend en charge une gamme d'opérateurs de comparaison :
=égal à<>ou!=différent de>supérieur à,<inférieur à>=supérieur ou égal à,<=inférieur ou égal à
Vous pouvez combiner des conditions avec AND et OR :
SELECT nom_programme, capacite, type_programme
FROM programmes
WHERE capacite >= 10
AND type_programme = 'Atelier'
ORDER BY capacite;
Filtrage des valeurs nulles
Vous ne pouvez pas utiliser = NULL pour trouver des valeurs nulles. Utilisez IS NULL ou IS NOT NULL :
SELECT nom_programme
FROM programmes
WHERE date_debut IS NULL;
Tri par plusieurs colonnes
ORDER BY peut trier par plus d'une colonne :
SELECT nom_programme, type_programme, date_debut
FROM programmes
ORDER BY type_programme ASC, date_debut DESC;
Fonctions d'agrégation
Les fonctions d'agrégation résument un ensemble de lignes en une seule valeur :
COUNT(*)— compte le nombre de lignesSUM(colonne)— additionne les valeurs numériquesAVG(colonne)— calcule la moyenneMIN(colonne)— trouve la valeur la plus petiteMAX(colonne)— trouve la valeur la plus grande
GROUP BY
GROUP BY divise les lignes en groupes et applique la fonction d'agrégation à chaque groupe séparément :
SELECT emplacement_id, COUNT(*) AS nombre_programmes
FROM programmes
GROUP BY emplacement_id;
Chaque ligne de sortie représente un emplacement et montre combien de programmes s'y tiennent.
SELECT type_programme, AVG(capacite) AS capacite_moyenne
FROM programmes
GROUP BY type_programme
ORDER BY capacite_moyenne DESC;
Interpréter les résultats groupés
Quand vous utilisez GROUP BY, chaque ligne de sortie représente un groupe — pas un enregistrement individuel. Le niveau de détail change. Validez toujours les résultats groupés en vérifiant si les totaux ont du sens.
Oublier que GROUP BY change le niveau de détail est une source fréquente de confusion. Après le regroupement, vous travaillez avec des résumés, pas des enregistrements individuels. Vérifiez vos comptages de lignes avant et après pour confirmer que la requête fait ce que vous attendez.
Points à retenir
- WHERE prend en charge les opérateurs de comparaison et les combinaisons AND/OR.
- Utilisez IS NULL et IS NOT NULL pour filtrer les valeurs nulles — pas = NULL.
- ORDER BY peut trier par plusieurs colonnes dans différentes directions.
- Les fonctions d'agrégation (COUNT, SUM, AVG, MIN, MAX) résument des groupes de lignes.
- GROUP BY change le niveau de détail — validez les totaux pour confirmer l'exactitude.
- exemples SQL WHERE AND OR
- SQL GROUP BY fonctions d'agrégation
- tutoriel SQL COUNT SUM AVG
- filtre SQL IS NULL