Brigade des Requêtes

Chapitre 2 : WHERE, ORDER BY, LIMIT

La Filature & Le Tri

Un bon détective ne lit pas tout le registre : il filtre. WHERE garde les lignes qui t'intéressent, ORDER BY les trie, LIMIT n'en garde que quelques-unes.

WHERE : filtrer les lignes

La clause WHERE suit le FROM et ne conserve que les lignes pour lesquelles la condition est vraie.

SELECT plaque, marque
FROM observations
WHERE couleur = 'Rouge';
OpérateurSignificationExemple
=égalcouleur = 'Rouge'
<> ou !=différentlieu <> 'Gare'
> , >=strictement supérieur / supérieur ou égalvitesse_kmh > 80
< , <=inférieurvitesse_kmh <= 50
BETWEEN a AND bentre a et b (bornes incluses)vitesse_kmh BETWEEN 40 AND 60
IN (...)dans une liste de valeurscouleur IN ('Rouge', 'Noir')

Combiner les conditions : AND, OR, NOT

  • AND : les deux conditions doivent être vraies.
  • OR : au moins une des deux doit être vraie.
  • NOT : inverse la condition.
SELECT plaque, couleur, vitesse_kmh
FROM observations
WHERE couleur = 'Rouge' AND vitesse_kmh > 80;

LIKE : chercher un motif dans un texte

Avec LIKE, le symbole % remplace « n'importe quelle suite de caractères » (même vide) et _ remplace exactement un caractère.

-- tous les lieux qui commencent par « Musée »
SELECT DISTINCT lieu
FROM observations
WHERE lieu LIKE 'Musée%';
MotifTrouve
'Musée%'commence par Musée
'%Parking'finit par Parking
'%ar%'contient « ar »
'_-123-CD'un caractère, puis -123-CD

ORDER BY et LIMIT : trier et restreindre

ORDER BY colonne ASC trie du plus petit au plus grand (par défaut) ; DESC inverse. LIMIT n ne garde que les n premières lignes, idéal combiné à un tri pour obtenir un « top n ».

Les 3 véhicules les plus rapides
SELECT plaque, vitesse_kmh
FROM observations
ORDER BY vitesse_kmh DESC
LIMIT 3;

À toi de jouer : Exercice guidé

Liste la plaque et la marque des véhicules qui roulaient à plus de 80 km/h, du plus rapide au moins rapide.

Passer à l'énigme : La voiture rouge du musée