Cláusula ORDER BY de MySQL
La cláusula `ORDENAR POR` de MySQL se utiliza para ordenar el conjunto de resultados de una consulta por una o varias columnas. Permite la clasificación por orden ascendente o descendente, lo que puede ayudar a organizar los datos de forma significativa.
Utilización
La cláusula `ORDER BY` se aplica al final de una sentencia `SELECT` para ordenar los datos recuperados. Puedes especificar un orden ascendente mediante `ASC` (por defecto) o descendente mediante `DESC`.
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
En esta sintaxis, `ORDENAR POR columna1` ordena el resultado basándose en `columna1`, y se pueden añadir columnas posteriores para una ordenación secundaria.
Ejemplos
1. Clasificación básica
SELECT *
FROM products
ORDER BY price;
Este ejemplo ordena la tabla `productos` por la columna `precio` en orden ascendente por defecto.
2. Orden descendente
SELECT first_name, last_name
FROM employees
ORDER BY last_name DESC;
Aquí, la tabla `empleados` se ordena por `apellido` en orden descendente, lo que resulta útil para invertir el orden alfabético.
3. Ordenación multicolumna
SELECT first_name, last_name, department
FROM employees
ORDER BY department ASC, last_name DESC;
Este ejemplo ordena la tabla `empleados` primero por `departamento` en orden ascendente y luego por `apellido` en orden descendente dentro de cada grupo de departamentos.
4. Ordenar por expresiones
SELECT product_name, price, quantity, (price * quantity) AS total_value
FROM products
ORDER BY total_value DESC;
En este ejemplo, la tabla `productos` se ordena por un campo calculado `valor_total`, que es una expresión creada mediante un alias.
Consejos y buenas prácticas
- Utiliza índices de columna. La ordenación es más eficaz en columnas indexadas, lo que reduce el tiempo de consulta.
- Limita los resultados por rendimiento. Combina `ORDENAR POR` con `LÍMITE` para controlar el número de filas devueltas y mejorar el rendimiento.
- Especifica la dirección de ordenación. Indica explícitamente la dirección de ordenación (ASC o DESC) para mayor claridad, especialmente en consultas complejas.
- Evita la clasificación innecesaria. Utiliza `ORDENAR POR` sólo cuando sea necesario un orden específico para minimizar la sobrecarga de la consulta.
- Ordena por expresiones y alias. Utiliza expresiones o campos calculados, y ordénalos por sus alias para conseguir una ordenación más dinámica.
- Manejar valores NULL. Por defecto, los valores NULL se ordenan primero en orden ascendente y último en orden descendente. Se pueden hacer ajustes mediante expresiones si se desea un orden diferente.