ORDENAR POR em MySQL: Consulta DESC e ASC com EXEMPLO
Resultados de classificaรงรฃo
Utilizando 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 de nossa consulta. Classificar รฉ simplesmente reorganizar os resultados da consulta de uma maneira especรญfica. A classificaรงรฃo pode ser realizada em uma รบnica coluna ou em mais de uma coluna. Isso pode ser feito em nรบmeros, strings e tambรฉm em tipos de dados de data.
O que รฉ ORDER BY em MySQL?
MySQL ORDENAR POR รฉ usado em conjunto com a consulta SELECT para classificar os dados de maneira ordenada. O MySQL A clรกusula ORDER BY รฉ 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
- โ[ONDE condiรงรฃo | GROUP BY `field_name(s)` TENDO condiรงรฃoโ รฉ a condiรงรฃo opcional usada para filtrar os conjuntos de resultados da consulta.
- "ORDENAR POR" executa a classificaรงรฃo do conjunto de resultados da consulta
- โ[ASC | DESC]โ รฉ a palavra-chave usada para classificar conjuntos de resultados em ordem crescente ou decrescente. Observaรงรฃo ASC รฉ usado como padrรฃo.
- SELECIONE {nome(s) do(s) campo(s) | *} FROM nome(s) da(s) tabela(s) รฉ a instruรงรฃo que contรฉm os campos e tabelas das quais obter o conjunto de resultados.
- [ONDE condiรงรฃo] รฉ opcional, mas pode ser usado para filtrar os dados de acordo com a condiรงรฃo fornecida.
- ORDENAR POR fieldname(s) รฉ obrigatรณrio e รฉ o campo no qual a classificaรงรฃo deve ser realizada. O MySQL A palavra-chave DESC especifica que a classificaรงรฃo deve ser feita em ordem decrescente.
- [LIMITE] รฉ opcional, mas pode ser usado para limitar o nรบmero de resultados retornados do conjunto de resultados da consulta.
O que sรฃo palavras-chave DESC e ASC?
ASC รฉ a forma abreviada de ascendente |
MySQL DESC รฉ a forma abreviada de descendente |
|---|---|
| ร 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 รฉ mostrada 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 no topo 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. |
Ambas as palavras-chave SQL DESC e ASC sรฃo usadas juntas com a instruรงรฃo SELECT e MySQL Clรกusula ORDER BY.
Sintaxe DESC e ASC
A palavra-chave SQL DESC sort possui a seguinte sintaxe bรกsica.
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
AQUI
Exemplos:
Vejamos agora um exemplo prรกtico โ
SELECT * FROM members;
Executando o script acima em MySQL workbench contra o myflixdb nos dรก os seguintes resultados mostrados abaixo.
| membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 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 |
Suponhamos que o departamento de marketing queira 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;
Executando o script acima em MySQL workbench contra o myflixdb nos dรก os seguintes resultados mostrados abaixo.
A mesma consulta em ordem crescente
SELECT * FROM membros ORDER BY data_de_nascimento ASC
Nota: valores NULL significam nenhum valor (nรฃo zero ou string vazia). Observe a forma como eles foram classificados.
Mais exemplos
Vamos considerar o seguinte script SQL de classificaรงรฃo por 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 | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Male | 12-07-1989 | 3rd Street 34 | NULL | 12345 | rm@tstreet.com |
| 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 queiramos obter uma lista que classifique o conjunto de resultados da consulta usando o campo 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 | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Female | 21-07-1980 | First Street Plot No 4 | Private Bag | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Female | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 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 | rm@tstreet.com |
| 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 |
Os membros โfemininosโ foram exibidos primeiro, seguidos pelos membros โmasculinosโ, isso ocorre porque quando a clรกusula ORDER BY DESC รฉ usada sem especificar o ASC ou MySQL Palavra-chave DESC, por padrรฃo, MySQL classificou o conjunto de resultados da consulta em ordem crescente.
Vejamos agora um exemplo que faz o classificaรงรฃo usando duas colunas; o primeiro รฉ classificadas in Ordem ascendente por padrรฃo, enquanto a segunda coluna รฉ classificadas in ordem decrescente.
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
Executando o script acima em MySQL workbench contra o 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 explicitamente em ordem decrescente
Por que podemos usar DESC e ASC?
Suponha que queiramos imprimir um histรณrico de pagamentos de um membro da videoteca para ajudar a esclarecer dรบvidas da recepรงรฃo. Nรฃo seria mais lรณgico imprimir os pagamentos em ordem cronolรณgica decrescente, comeรงando pelo 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 queira obter uma lista de filmes por categoria que os membros possam usar para decidir quais filmes estรฃo disponรญveis na biblioteca ao alugรก-los. Nรฃo seria mais lรณgico classificar os nomes e tรญtulos das categorias de filmes em ordem crescente para que os membros podem pesquisar rapidamente as informaรงรตes da lista?
A palavra-chave ASC รฉ รบtil nessas situaรงรตes; podemos obter a lista de filmes classificada por nome da 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 DESC quanto 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 LIMITE
- O padrรฃo para ORDER BY quando nada foi especificado explicitamente รฉ ASC.

ASC รฉ a forma abreviada de ascendente
MySQL DESC รฉ a forma abreviada de descendente

