Cláusula ORDER BY do MySQL
A cláusula `ORDER BY` no MySQL é usada para classificar o conjunto de resultados de uma consulta por uma ou mais colunas. Ele permite a classificação em ordem crescente ou decrescente, o que pode ajudar a organizar os dados de forma significativa.
Uso
A cláusula `ORDER BY` é aplicada no final de uma instrução `SELECT` para classificar os dados recuperados. Você pode especificar a ordem crescente usando `ASC` (padrão) ou a ordem decrescente usando `DESC`.
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
Nessa sintaxe, `ORDER BY column1` classifica o resultado com base em `column1`, e colunas subsequentes podem ser adicionadas para classificação secundária.
Exemplos
1. Classificação básica
SELECT *
FROM products
ORDER BY price;
Este exemplo classifica a tabela `produtos` pela coluna `preço` em ordem crescente por padrão.
2. Ordem decrescente
SELECT first_name, last_name
FROM employees
ORDER BY last_name DESC;
Aqui, a tabela `employees` é classificada por `last_name` em ordem decrescente, o que é útil para inverter a ordem alfabética.
3. Classificação em várias colunas
SELECT first_name, last_name, department
FROM employees
ORDER BY department ASC, last_name DESC;
Este exemplo classifica a tabela `employees` primeiro por `department` em ordem crescente e, em seguida, por `last_name` em ordem decrescente dentro de cada grupo de departamentos.
4. Classificação por expressões
SELECT product_name, price, quantity, (price * quantity) AS total_value
FROM products
ORDER BY total_value DESC;
Neste exemplo, a tabela `products` é classificada por um campo calculado `total_value`, que é uma expressão criada usando um alias.
Dicas e práticas recomendadas
- Use índices de coluna. A classificação é mais eficiente em colunas indexadas, reduzindo o tempo de consulta.
- Limite os resultados para o desempenho. Combine `ORDER BY` com `LIMIT` para controlar o número de linhas retornadas e melhorar o desempenho.
- Especifique a direção de classificação. Indique explicitamente a direção de classificação (ASC ou DESC) para maior clareza, especialmente em consultas complexas.
- Evite a classificação desnecessária. Use `ORDER BY` somente quando uma ordem específica for necessária para minimizar a sobrecarga da consulta.
- Classifique por expressões e aliases. Utilize expressões ou campos calculados e classifique por seus aliases para obter uma ordenação mais dinâmica.
- Manipulação de valores NULL. Por padrão, os valores NULL são classificados primeiro em ordem crescente e por último em ordem decrescente. Você pode fazer ajustes usando expressões se desejar uma ordem diferente.