Este tutorial explica a cláusula MySQL ORDER BY e a sua utilização com ambas as opções ASC e DESC. Nós descreveremos esta declaração MySQL com a ajuda de exemplos simples.

1. ORDER BY Clause Syntax
2. ORDER BY W/O ASC ou DESC
3. ORDER BY DESC
4. ORDER BY Relative Position
5. ORDER BY Two Fields ASC & DESC

Vamos agora percorrer cada uma das seções uma a uma.

MySQL ORDER BY Clause

O comando MySQL SELECT não retorna um resultado ordenado definido por padrão. Portanto, para ordenar a saída, você tem que anexar a cláusula ORDER BY na consulta SELECT. Podemos conseguir o seguinte utilizando a cláusula ORDER BY:

  • Realizar a ordenação dos registos por um único/múltiplos campos
  • Selecionar as linhas por colunas distintas em ordem ascendente (ASC) ou descendente (DESC).

O seguinte ilustra a sintaxe da cláusula ORDER BY:

Sintaxe

# MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...

A cláusula ORDER BY por padrão realiza a ordenação em ordem crescente. O termo ASC é um acrônimo para aumentar enquanto DESC significa descendente. Para DESC, você tem que mencioná-lo na sua consulta SELECT.

Por favor note que você pode até mesmo especificar uma expressão com o ORDER BY no MySQL. Além disso, ambas as opções ASC e DESC são opcionais a esta instrução.

Aqui estão alguns exemplos de exercícios para prática.

MySQL ORDER BY Exemplos de Cláusula

Vejamos como utilizar a cláusula ORDER BY com consultas MySQL SELECT.

Usando ordem por sem a opção asc/desc

Para demonstrar, vamos primeiro criar uma tabela chamada Sample e preenchê-la com alguns dados de teste.

CREATE TABLE Sample ( sample_id int NOT NULL, sample_name VARCHAR(20), vendor_name VARCHAR(20), sample_size INT );

Próximo, vamos inserir alguns dados dummy para o nosso teste.

Após isso, precisamos verificar o conteúdo da nossa tabela Sample. Veja abaixo.

SELECT *FROM Sample;

A saída de Its é a seguinte:

Agora, vamos exercitar a cláusula ORDER BY no arquivo “vendor_name”. E, vamos observar o conjunto de resultados recebido do banco de dados MySQL:

SELECT *FROM SampleORDER BY vendor_name;

Você terá um resultado mostrando a saída abaixo:

Você pode avaliar a partir do conjunto de resultados acima que a ordenação ocorreu na ordem ascendente padrão.

Ordenar em ordem descendente

Neste exemplo, vamos demonstrar a cláusula ORDER BY para ordenar na ordem descendente. Para isso, teremos que especificá-la explicitamente.

Aqui está a instrução MySQL para ordenar por ordem decrescente:

SELECT *FROM SampleORDER BY vendor_name DESC;

A saída de SELECT é:

Ordenar por campo numa posição relativa

É possível utilizar a cláusula MySQL ORDER BY para ordenar por um campo numa posição RELATIVA.

Quando especificamos nomes de colunas na consulta SELECT, o primeiro campo está na posição um, o segundo na posição dois, e assim por diante. Além disso, podemos validar este facto utilizando um exemplo.

Aqui está uma instrução SELECT que exibe campos e ordena por uma posição relativa.

SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;

Aqui está o conjunto de resultados que você obtém após executar o comando acima:

Você pode ver o MySQL ordenado por campo sample_size que corresponde à quarta coluna.

Usando ORDER BY para ordenar em duas colunas

Tínhamos mencionado anteriormente que você poderia usar ORDER BY em um ou mais campos. Neste caso, o MySQL trata o primeiro campo como primário e o segundo como secundário. Portanto, primeiro ordena o primário e depois o segundo.

Hence, neste exemplo, vamos demonstrar ORDER BY em duas colunas, um campo como ASC, e outro DESC. Também, precisamos inserir mais registros para mostrar que a segunda coluna também fica ordenada.

Pode ignorar a instrução INSERT dada no início acima e usar a abaixo.

Agora, temos algumas linhas com os mesmos nomes de fornecedores mas tamanhos de amostra variados. E, agora vamos ordenar com base nos campos vendor_name (primário) e sample_size (secundário).

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;

Este comando MySQL produz este resultado:

Você pode ver todos os valores no campo primário ordenados na ordem ascendente. E, é também evidente pela saída que a ordenação (em DESC) também ocorreu na segunda.

Agora, vamos descobrir qual seria o resultado, se tivéssemos ordenado apenas no nome do fornecedor.

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;

Este comando irá render como:

Vemos pelo resultado acima que as linhas pertencentes ao Google e Twitter não ordenaram em seus tamanhos de amostra.

Esperamos que depois de terminar este tutorial, você se sinta confortável em usar a cláusula MySQL ORDER BY. Entretanto, você pode praticar mais com exemplos para ganhar confiança.

Apeso disso, para aprender SQL do zero à profundidade, leia nosso tutorial passo a passo do MySQL.

Deixe uma resposta

O seu endereço de email não será publicado.