WHERE conserve les lignes qui respectent une condition
Sans filtre, la requête retourne toutes les lignes. WHERE s’écrit après FROM et compare une colonne à une valeur.
Les textes sont entourés d’apostrophes. Les nombres restent sans apostrophes lorsqu’ils sont stockés comme nombres.
=égal<>différent>et<comparaisons strictes>=et<=incluent la valeur limite
SELECT produit, prix
FROM produits
WHERE prix < 50;Combiner avec AND, OR et NOT
AND exige que les deux conditions soient vraies. OR accepte qu’une seule condition soit vraie. Des parenthèses rendent la priorité explicite.
NOT inverse un test. Il doit être utilisé avec une formulation qui reste facile à relire.
SELECT produit, categorie, prix
FROM produits
WHERE categorie = 'Informatique'
AND prix <= 100;ORDER BY organise le résultat
ORDER BY intervient après le filtre. ASC trie en ordre croissant et constitue généralement la valeur par défaut. DESC applique l’ordre décroissant.
Plusieurs colonnes peuvent être indiquées. La deuxième départage les lignes identiques selon la première.
SELECT produit, prix
FROM produits
WHERE prix >= 10
ORDER BY prix DESC, produit ASC;Attention aux valeurs NULL
NULL signifie absence de valeur connue. Il ne se compare pas avec = NULL.
Utilisez IS NULL pour trouver les valeurs absentes et IS NOT NULL pour les valeurs renseignées.
SELECT nom
FROM clients
WHERE ville IS NULL;Rendre un filtre explicable et reproductible
Un filtre traduit une règle métier. Écrivez cette règle en phrase avant de la convertir en SQL : commandes payées, créées pendant juillet, dont le montant est au moins égal à 100 €. Chaque mot influence l’opérateur et les bornes.
Les dates demandent une attention particulière. Pour une période complète, une borne de début incluse et une borne de fin exclue évitent les problèmes d’heures : date >= '2026-07-01' AND date < '2026-08-01'.
Un classement doit aussi être stable. Lorsque deux lignes ont la même valeur principale, ajoutez un second critère unique afin d’obtenir le même ordre à chaque exécution et dans chaque export paginé.
SELECT id_commande, date_commande, montant
FROM commandes
WHERE statut = 'Payée'
AND date_commande >= DATE '2026-07-01'
AND date_commande < DATE '2026-08-01'
ORDER BY montant DESC, id_commande ASC;Vérifiez votre compréhension
Affichez les produits dont le prix est au moins 40 €, du moins cher au plus cher.
SELECT produit, prix
FROM produits
WHERE -- condition
ORDER BY -- tri;Progression
Avez-vous terminé cette leçon ?
Votre choix reste dans ce navigateur et se synchronise aussi avec votre compte lorsque vous êtes connecté.