Clause ORDER BY de MySQL
La clause `ORDER BY` de MySQL est utilisée pour trier le résultat d'une requête par une ou plusieurs colonnes. Il permet de trier les données par ordre croissant ou décroissant, ce qui peut aider à organiser les données de manière pertinente.
Utilisation
La clause "ORDER BY" est appliquée à la fin d'une instruction "SELECT" pour trier les données extraites. Vous pouvez spécifier l'ordre croissant en utilisant `ASC` (par défaut) ou l'ordre décroissant en utilisant `DESC`.
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
Dans cette syntaxe, `ORDER BY column1` trie le résultat sur la base de `column1`, et les colonnes suivantes peuvent être ajoutées pour un tri secondaire.
Exemples
1. Tri de base
SELECT *
FROM products
ORDER BY price;
Cet exemple trie par défaut le tableau `produits` par la colonne `prix` dans l'ordre croissant.
2. Ordre décroissant
SELECT first_name, last_name
FROM employees
ORDER BY last_name DESC;
Ici, le tableau `employees` est trié par `last_name` dans l'ordre décroissant, ce qui est utile pour inverser l'ordre alphabétique.
3. Tri sur plusieurs colonnes
SELECT first_name, last_name, department
FROM employees
ORDER BY department ASC, last_name DESC;
Cet exemple trie le tableau `employees` d'abord par `département` dans l'ordre croissant, puis par `last_name` dans l'ordre décroissant à l'intérieur de chaque groupe de départements.
4. Tri par expressions
SELECT product_name, price, quantity, (price * quantity) AS total_value
FROM products
ORDER BY total_value DESC;
Dans cet exemple, le tableau `products` est trié par un champ calculé `total_value`, qui est une expression créée à l'aide d'un alias.
Conseils et bonnes pratiques
- Utilisez des index de colonnes. Le tri est plus efficace sur les colonnes indexées, ce qui réduit le temps d'interrogation.
- Limiter les résultats en fonction des performances. Combinez `ORDER BY` avec `LIMIT` pour contrôler le nombre de lignes retournées et améliorer les performances.
- Indiquez le sens du tri. Indiquez explicitement le sens du tri (ASC ou DESC) pour plus de clarté, en particulier dans les requêtes complexes.
- Évitez les tris inutiles. N'utilisez `ORDER BY` que lorsqu'un ordre spécifique est nécessaire pour minimiser la charge de travail de la requête.
- Trier par expressions et alias. Utilisez des expressions ou des champs calculés, et triez par leurs alias pour un classement plus dynamique.
- Traitement des valeurs NULL. Par défaut, les valeurs NULL sont triées en premier dans l'ordre croissant et en dernier dans l'ordre décroissant. Des ajustements peuvent être effectués à l'aide d'expressions si un ordre différent est souhaité.