Aller au contenu
Lecture (DQL)

WHERE

WHERE ne garde que les lignes qui vérifient une condition, avant tout regroupement. C'est le filtre de base pour cibler un client, une période, un statut ou une plage de valeurs.

  • filtrer
  • condition
  • opérateurs
  • AND
  • OR

Syntaxe

Modèle
SELECT colonnesFROM tableWHERE condition1 AND (condition2 OR condition3);

Exemple

Exemple concret
SELECT name, age, class_idFROM studentsWHERE age = 12 AND (class_id = 1 OR class_id = 2)ORDER BY name;-- Jeu de données : école-- Résultat attendu :-- Alice Leroy | 12 | 1-- Bob Petit | 12 | 1-- David Roux | 12 | 2

À retenir

  1. Opérateurs de comparaison : =, <> (ou !=), <, >, <=, >=. Les textes s'écrivent entre apostrophes simples : WHERE city = 'Paris'.
  2. Piège : AND est prioritaire sur OR. Sans les parenthèses de l'exemple, la condition devient (age = 12 AND class_id = 1) OR class_id = 2 et ramène aussi Clara, qui a 13 ans.
  3. Piège : WHERE col = NULL ne renvoie jamais rien, car une comparaison avec NULL n'est ni vraie ni fausse. Utilisez IS NULL.
  4. En SQLite, = est sensible à la casse sur le texte ('paris' <> 'Paris'). Pour comparer sans tenir compte de la casse : WHERE lower(city) = 'paris' ou COLLATE NOCASE.

Voir aussi