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érateur | Signification | Exemple |
|---|---|---|
| = | égal | couleur = 'Rouge' |
| <> ou != | différent | lieu <> 'Gare' |
| > , >= | strictement supérieur / supérieur ou égal | vitesse_kmh > 80 |
| < , <= | inférieur | vitesse_kmh <= 50 |
| BETWEEN a AND b | entre a et b (bornes incluses) | vitesse_kmh BETWEEN 40 AND 60 |
| IN (...) | dans une liste de valeurs | couleur 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%';| Motif | Trouve |
|---|---|
| '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 ».
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.