ORDER BY no MySQL: DESC & Consulta ASC com EXEMPLO

Índice:

Anonim

Resultados de classificação

Usando o comando SELECT, os resultados foram retornados na mesma ordem em que os registros foram adicionados ao banco de dados. Esta é a ordem de classificação padrão. Nesta seção, veremos como podemos classificar os resultados da consulta. Classificar é simplesmente reorganizar os resultados da consulta de uma maneira especificada. A classificação pode ser executada em uma única coluna ou em mais de uma coluna. Isso pode ser feito em número, strings, bem como tipos de dados de data.

O que é ORDER BY no MySQL?

MySQL ORDER BY é usado em conjunto com a consulta SELECT para classificar os dados de maneira ordenada. A cláusula ORDER BY do MySQL é usada para classificar os conjuntos de resultados da consulta em ordem crescente ou decrescente.

SELECT statement… [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

AQUI

  • "Instrução SELECT ..." é a consulta de seleção regular
  • "|" representa alternativas
  • "[WHERE condição | GROUP BY` field_name (s) `HAVING condition" é a condição opcional usada para filtrar os conjuntos de resultados da consulta.
  • "ORDER BY" realiza a classificação do conjunto de resultados da consulta
  • "[ASC | DESC]" é a palavra-chave usada para classificar os conjuntos de resultados em ordem crescente ou decrescente. Nota ASC é usado como padrão.

O que são palavras-chave DESC e ASC?

ASC é a forma abreviada para ascendente

MySQL DESC é a forma abreviada de decrescente

É usado para classificar os resultados da consulta em um estilo de cima para baixo.

É usado para classificar os resultados da consulta em um estilo de baixo para cima

Ao trabalhar com tipos de dados de data, a data mais antiga é mostrada no topo da lista.

. Ao trabalhar com tipos de data, a data mais recente é exibida no topo da lista.

Ao trabalhar com tipos de dados numéricos, os valores mais baixos são mostrados no topo da lista.

Ao trabalhar com tipos de dados numéricos, os valores mais altos são mostrados na parte superior do conjunto de resultados da consulta.

Ao trabalhar com tipos de dados de string, o conjunto de resultados da consulta é classificado daqueles que começam com a letra A e vão até a letra Z.

Ao trabalhar com tipos de dados de string, o conjunto de resultados da consulta é classificado daqueles que começam com a letra Z e vão até a letra A.

As palavras-chave SQL DESC e ASC são usadas juntas em conjunto com a instrução SELECT e a cláusula ORDER BY do MySQL.

Sintaxe DESC e ASC

A palavra-chave de classificação SQL DESC possui a seguinte sintaxe básica.

SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

AQUI

  • SELECIONE {nome (s) do (s) campo (s) | *} FROM tableName (s) é a instrução que contém os campos e as tabelas dos quais obter o conjunto de resultados.
  • [Condição WHERE] é opcional, mas pode ser usada para filtrar os dados de acordo com a condição fornecida.
  • O (s) nome (s) do campo ORDER BY é obrigatório e é o campo no qual a classificação deve ser realizada. A palavra-chave DESC do MySQL especifica que a classificação deve ser em ordem decrescente.
  • [LIMIT] é opcional, mas pode ser usado para limitar o número de resultados retornados do conjunto de resultados da consulta.

Exemplos:

Vejamos agora um exemplo prático -

SELECT * FROM members;

Executar o script acima no ambiente de trabalho MySQL no myflixdb nos dá os seguintes resultados mostrados abaixo.

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553

Vamos supor que o departamento de marketing deseja que os detalhes dos membros sejam organizados em ordem decrescente de Data de Nascimento. Isso os ajudará a enviar cumprimentos de aniversário em tempo hábil. Podemos obter a referida lista executando uma consulta como abaixo -

SELECT * FROM members ORDER BY date_of_birth DESC;

Executar o script acima no ambiente de trabalho MySQL no myflixdb nos dá os seguintes resultados mostrados abaixo.

A mesma consulta em ordem crescente

SELECIONE * DE membros ORDENAR POR date_of_birth ASC

Nota: Valores NULL significa nenhum valor (diferente de zero ou string vazia). Observe a maneira como eles foram classificados.

Mais exemplos

Vamos considerar o seguinte script que lista todos os registros de membros.

SELECT * FROM `members`;

A execução do script acima fornece os seguintes resultados mostrados abaixo.

 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Suponha que desejamos obter uma lista que classifica o conjunto de resultados da consulta usando o campo de gênero, usaríamos o script mostrado abaixo.

SELECT * FROM `members` ORDER BY `gender`;
 
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

Membros "Feminino" foram exibidos primeiro seguidos por membros "Masculino", isso porque quando a cláusula ORDER BY DESC é usada sem especificar a palavra-chave ASC ou MySQL DESC, por padrão, o MySQL classificou o conjunto de resultados da consulta em ordem crescente.

Vejamos agora um exemplo que faz a classificação usando duas colunas ; a primeira é classificada em ordem crescente por padrão, enquanto a segunda coluna é classificada em ordem decrescente.

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

A execução do script acima no ambiente de trabalho MySQL no myflixdb fornece os seguintes resultados.

A coluna de gênero foi classificada em ordem crescente por padrão, enquanto a coluna de data de nascimento foi classificada em ordem decrescente explicitamente

Por que podemos usar DESC e ASC?

Suponha que desejemos imprimir um histórico de pagamentos para um membro da videoteca para ajudar a responder às perguntas da recepção, não seria mais lógico ter os pagamentos impressos em ordem cronológica decrescente, começando com o pagamento recente até o pagamento anterior?

DESC em SQL é uma palavra-chave que se torna útil em tais situações. Podemos escrever uma consulta que classifique a lista em ordem decrescente usando a data de pagamento.

Suponha que o departamento de marketing deseja obter uma lista de filmes por categoria que os membros podem usar para decidir quais filmes estão disponíveis na biblioteca ao alugar filmes, não seria mais lógico classificar os nomes das categorias de filmes e títulos em ordem crescente de modo que os membros podem consultar rapidamente as informações da lista?

A palavra-chave ASC é útil em tais situações; podemos obter a lista de filmes classificados por nome de categoria e título do filme em ordem crescente.

Resumo

  • Classificar os resultados da consulta é reorganizar as linhas retornadas de um conjunto de resultados da consulta em ordem crescente ou decrescente.
  • A palavra-chave DESC em SQL é usada para classificar o conjunto de resultados da consulta em ordem decrescente.
  • A palavra-chave ASC é usada para classificar o conjunto de resultados da consulta em ordem crescente.
  • Tanto o DESC quanto o ASC funcionam em conjunto com a palavra-chave ORDER BY. Eles também podem ser usados ​​em combinação com outras palavras-chave, como cláusula WHERE e LIMIT
  • O padrão para ORDER BY quando nada foi explicitamente especificado é ASC.