Leçon 3 sur 3

Filtrer avec WHERE et trier avec ORDER BY

Transformez une lecture complète en réponse précise grâce aux conditions et au tri.

18 minAccès gratuit

À la fin de cette leçon

  • Construire une condition WHERE
  • Combiner plusieurs critères
  • Trier avec ASC et DESC

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
Produits à moins de 50 DT
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.

Deux conditions obligatoires
SELECT produit, categorie, prix
FROM produits
WHERE categorie = 'Informatique'
  AND prix <= 100;
Quand AND et OR apparaissent ensemble, utilisez des parenthèses même si vous connaissez leur priorité. Le prochain lecteur vous remerciera.

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.

Du prix le plus élevé au plus faible
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.

Clients sans ville renseignée
SELECT nom
FROM clients
WHERE ville IS NULL;

Vérifiez votre compréhension

Affichez les produits dont le prix est au moins 40 DT, du moins cher au plus cher.

À compléter
SELECT produit, prix
FROM produits
WHERE -- condition
ORDER BY -- tri;