Le podium du club de jeux
Le club de jeux affiche un classement sur l'écran du foyer. Huit joueurs ont envoyé leurs scores.
Mais les scores sont rangés dans l'ordre où ils sont arrivés. Le meilleur est au milieu.
Tu veux le podium : les trois meilleurs, dans l'ordre. Deux outils suffisent : ORDER BY et LIMIT.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| ORDER BY | Les mots qui trient le résultat selon une colonne. En français : « trier par ». | ORDER BY points |
| ASC | Du plus petit au plus grand, ou de A à Z. C'est l'ordre normal. | ORDER BY points ASC |
| DESC | Du plus grand au plus petit, ou de Z à A. | ORDER BY points DESC |
| LIMIT | Le mot qui garde seulement les premières lignes du résultat. | LIMIT 3 |
| Critère de tri | La colonne selon laquelle on trie. | points |
| Égalité | Deux lignes qui ont la même valeur dans la colonne de tri. | Deux joueurs à 1200 points. |
| Classement | Une liste rangée du meilleur au moins bon. | Le podium d'un jeu. |
| Résultat | Le tableau que la base renvoie après une requête. | Trois lignes et deux colonnes. |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Trier avec ORDER BY
On ajoute ORDER BY et le nom de la colonne, à la fin de la requête.
Par défaut, le tri va du plus petit au plus grand. Pour du texte, c'est l'ordre de l'alphabet.
La table elle-même ne bouge pas. Seul le résultat est rangé.
À toi : un premier tri
-- Sans précision, ORDER BY trie du plus petit au plus grand.
SELECT joueur, points FROM scores ORDER BY points;
-- Trie par nom, dans l'ordre de l'alphabet.
SELECT joueur, points FROM scores ORDER BY joueur;
À toi : devine le premier
À toi de jouer
À toi : devine le premier
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Du plus grand au plus petit
Pour un classement, on veut le meilleur en premier. Ajoute DESC après la colonne.
ASC veut dire croissant. DESC veut dire décroissant. Comme ASC est l'ordre normal, on peut ne pas l'écrire.
À toi : le meilleur d'abord
-- DESC trie du plus grand au plus petit.
SELECT joueur, points FROM scores ORDER BY points DESC;
-- Remplace DESC par ASC : tu retrouves l'ordre de départ.
Quand deux lignes sont à égalité
Emma et Lucas ont 1200 points. Sara et Jules ont 1500. Qui passe devant ?
Si tu ne dis rien, la base choisit. Le résultat peut changer d'un jour à l'autre.
Donne donc un deuxième critère, après une virgule. Ici, le nom.
Exemple travaillé : points DESC, joueur ASC
| Place | joueur | points | Pourquoi |
|---|---|---|---|
| 1 | Nina | 1800 | Le plus de points |
| 2 | Jules | 1500 | Égalité avec Sara : J avant S |
| 3 | Sara | 1500 | Égalité avec Jules : S après J |
| 4 | Emma | 1200 | Égalité avec Lucas : E avant L |
| 5 | Lucas | 1200 | Égalité avec Emma : L après E |
| 6 | Hugo | 950 | Pas d'égalité |
| 7 | Yanis | 900 | Pas d'égalité |
| 8 | Manon | 700 | Le moins de points |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.