SQL ORDER POR
O SQL ORDER BY cláusula é usada para ordenar os dados armazenados em tabelas no banco de dados . A classificação pode ser feita de forma crescente, decrescente ou com base em várias colunas da tabela .
Geralmente, a ordem de classificação padrão é a ordem crescente.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
A seguir está a sintaxe de uma cláusula geral ORDER BY:
Exemplo:
Vamos considerar os seguintes Clientes tabela.
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
1 | Himani gupta | 21 | Modinagar | 22.000 |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
A consulta acima classificará todos os registros em ordem crescente com base nas colunas NOME e SALÁRIO.
Saída:
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22.000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
A consulta acima classificará todos os registros da tabela de forma decrescente com base na coluna NAME.
Saída:
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
1 | Himani gupta | 21 | Modinagar | 22.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
Existem vários tópicos na cláusula SQL ORDER BY. Ou seja, são:
- SQL ORDER POR ASC – Classifica os dados em ordem crescente
- SQL ORDER POR DESC – Classifica os dados de forma decrescente
- ORDEM SQL POR ALEATÓRIO – Classifica dados aleatórios
- SQL ORDER POR LIMITE – Seleciona dados limitados do banco de dados
- ORDER SQL POR Múltiplas Colunas – Classifica os dados com base em várias colunas.
Vamos discutir cada um deles em detalhes.
SQL ORDER POR ASC
SQL ORDER POR ASC cláusula classifica os dados em ordem crescente com base em algumas colunas. Geralmente, a ordem de classificação padrão é crescente.
Exemplo:
Vamos considerar os seguintes Clientes tabela.
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
1 | Himani gupta | 21 | Modinagar | 22.000 |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
A consulta acima classificará todos os registros em ordem crescente com base nas colunas NOME e SALÁRIO.
Saída:
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22.000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
SQL ORDER POR DESC
A cláusula SQL ORDER BY DESC classifica os dados em ordem decrescente com base em algumas colunas.
Exemplo:
Vamos considerar os seguintes Clientes tabela.
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
1 | Himani gupta | 21 | Modinagar | 22.000 |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
A consulta acima classificará todos os registros da tabela de forma decrescente com base na coluna NAME.
Saída:
ID | NOME | IDADE | ENDEREÇO | SALÁRIO |
2 | Shiva tiwari | 22 | Bhopal | 21.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26.000 |
6 | Mahesh sharma | 26 | Mathura | 22.000 |
1 | Himani gupta | 21 | Modinagar | 22.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
SQL ORDER BY LIMIT
A cláusula SQL ORDER BY LIMIT ajuda a recuperar um número específico de registros da tabela do banco de dados. Geralmente é usado em situações onde há um grande número de tuplas que satisfazem a condição dada. Ele define um limite superior para o número de registros que estão sendo recuperados.
Para usar a cláusula LIMIT no SQL, deve-se usar o ROWNUM cláusula com ele.
Nota:Deve-se notar que a cláusula LIMIT não é suportada por todas as versões do SQL.
Esta cláusula pode ser especificada usando o SQL 2008 OFFSET ou cláusulas FETCH FIRST .
Exemplo:
Vamos considerar o seguinte Aluno tabela.
RollNo | Nome | Classificação |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Ana | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5;
A consulta acima retornará apenas os 5 melhores alunos da tabela Aluno.
Saída:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
A cláusula LIMIT também pode ser usada com a cláusula ORDER BY.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
A consulta acima retornará os 3 melhores alunos com as notas mais altas em ordem decrescente.
Saída:
12006 | Ana | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
O operador LIMIT é especialmente útil em situações em que dados limitados precisam ser recuperados sem usar nenhuma instrução condicional.
O operador LIMIT também pode ser usado com o operador OFFSET.
LIMIT com DESLOCAMENTO
Deve-se notar que o valor OFFSET deve ser maior que zero , e não pode ser negativo. Se for fornecido um valor negativo, retornará um erro.
Exemplo:
Vamos considerar a mesma tabela Student.
RollNo | Nome | Classificação |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Ana | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SELECT * FROM Student LIMIT 5 OFFSET 2 ORDER BY RollNo;
Essa consulta retornará os 5 principais registros da tabela Aluno, excluindo as 2 principais entradas.
Saída:
RollNo | Nome | Classificação |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Ana | 10 |
12007 | Yusuf | 7 |
LIMITAR TODOS
Existe outra cláusula semelhante a LIMIT conhecida como LIMIT ALL . A cláusula LIMIT ALL não colocará nenhum limite e retornará todas as entradas da tabela.
Exemplo:
Vamos considerar novamente a mesma tabela Student.
RollNo | Nome | Classificação |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Ana | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
Consulta:
SELECT * FROM Student LIMIT ALL;
RollNo | Nome | Classificação |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Ana | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SQL ORDER BY várias colunas
O SQL ORDER BY Multiple Columns retornará as entradas de dados na coluna classificando-as usando várias colunas que foram fornecidas na consulta.
Ele classificará os dados com base na ordem dos nomes das colunas que foram fornecidos após a cláusula ORDER BY. O nome das colunas deve ser adicionado na ordem correspondente em que o usuário deseja que a ordenação aconteça.
Vários nomes de coluna podem ser adicionados separando-os usando uma vírgula (,). Além disso, as palavras-chave ASC ou DESC podem ser usadas para especificar a ordem da classificação.
Exemplo:
Vamos considerar o seguinte Funcionário tabela com quatro colunas, a saber, id, first_name, last_name e salário.
id | first_name | sobrenome | salário |
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Verde | 2400 |
4 | Michael | Muller | 3000 |
5 | Maria | Verde | 2400 |
Consulta:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Saída:
id | first_name | sobrenome | salário |
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Maria | G reen | 2400 |
2 | Ada | M uller | 2400 |
Assim, primeiro, a saída foi classificada por salário em ordem decrescente e depois por sobrenome em ordem crescente. Deve-se notar que se ASC ou DESC não for mencionado, ele irá, por padrão, classificar ambas as colunas em ordem crescente.
Conclusão
Então, acima estão algumas das cláusulas ORDER BY mais importantes e frequentemente usadas que são usadas pelos desenvolvedores diariamente para realizar operações específicas no banco de dados e recuperar dados. Essas cláusulas podem ser utilizadas individualmente ou também podem ser utilizadas em conjunto, de forma combinada, para realizar operações de banco de dados.