introdução
quando você recuperar dados no PostgreSQL, você provavelmente vai querer que os seus resultados sejam ordenados de uma certa forma. No PostgreSQL, você pode especificar a ordem de ordenação de seus resultados com a cláusula ORDER BY
. Esta cláusula permite-lhe especificar a coluna pela qual gostaria de classificar os seus resultados, e também permite-lhe escolher entre ordem ascendente e ordem descendente. Neste artigo, vamos dar uma olhada mais de perto na ordem ascendente PostgreSQL e opções de ordem descendente.
pré-requisitos
a fim de seguir juntamente com os exemplos que vamos estar olhando neste tutorial, você terá que garantir que o servidor PostgreSQL está devidamente instalado e configurado. O serviço deve estar em segundo plano.
Se estiver a trabalhar num ambiente Linux ou Windows, pode obter o PostgreSQL aqui.
o que é a ordem PostgreSQL por cláusula?
sempre que queremos recuperar dados de uma tabela PostgreSQL, criamos uma declaração SELECT
. Por padrão, PostgreSQL irá retornar as linhas na mesma ordem que foram inseridas. No entanto, podemos ajustar os nossos resultados para torná-los mais legíveis, separando-os. Há duas maneiras que os resultados podem ser ordenados: ordem ascendente e ordem descendente. Nós usamos a cláusula PostgreSQL ORDER BY
na nossa cláusula SELECT
para especificar as nossas preferências de ordenação.
abaixo é mostrada a sintaxe para o PostgreSQL ORDER BY
cláusula:
1
2 3 4 5 6 |
SELECIONE
name_of_the_column DA target_table ORDER BY name_of_the_column ASC |
Vamos discutir esta sintaxe um pouco mais detalhada:
- Primeiro, temos que especificar o nome da coluna que vamos utilizar para a classificação
ORDER BY
cláusula. Se quisermos classificar por uma série de colunas, separamo-las usando uma vírgula. - Depois de especificar o nome da nossa coluna, usamos
ASC
para especificar ordem ascendente ouDESC
para ordem descendente. O valor por omissão da cláusulaORDER BY
ASC
ou ordem ascendente se não for fornecido qualquer valor.
Criando um conjunto de dados de amostra
teremos de criar um conjunto de dados de amostra para usar em nossos exemplos. Vamos começar por criar uma tabela chamada client_info
:
1
2 3 4 5 6 7 |
CREATE TABLE client_info(
client_id INT PRIMARY KEY NOT NULL, client_firstname TEXT NOT NULL, client_lastname TEXT NOT NULL, client_age INT NOT NULL, client_email TEXT NOT NULL ); |
Now, let’s put some records in the table:
1
2 3 4 5 6 7 |
INSERT INTO client_info(client_id,client_firstname, client_lastname, client_age, client_email)
VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); |
We can verify that our INSERT
was successful with a SELECT
query statement:
1
2 3 4 5 6 7 8 9 |
testdatabase=# SELECT * FROM client_info;
client_id | client_firstname | client_lastname | client_age | client_email ———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] 5 | Dereck | Scott | 10 | [email protected] (5 LINHAS) |
Um Exemplo Usando PostgreSQL ORDEM ASC
Agora que aprendemos como o PostgreSQL ORDER BY
instrução de obras, vamos tentar usá-lo para classificar os registros que criamos na seção anterior.
Vamos usar a instrução a seguir:
1
|
SELECT * FROM client_info ORDEM client_firstname ASC;
|
Esta instrução irá instruir o PostgreSQL para selecionar todas as linhas da tabela client_info
e classificá-los com base no client_firstname
coluna em ordem crescente.
os resultados desta consulta serão parecidos com os seguintes::
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 5 | Dereck | Scott | 10 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 LINHAS) |
podemos ver que os valores de client_firstname
campo são classificados em ordem alfabética crescente– nossa consulta foi bem-sucedida.
um exemplo usando ordem PostgreSQL por DESC
no exemplo anterior, nós usamos a opção ORDER BY
com a cláusula ASC
para ordem ascendente. Agora, vamos fazer o oposto e usar ORDER BY
comDESC
para ordenar em ordem descendente.
Para fazer isso, vamos usar a instrução a seguir:
1
|
SELECT * FROM client_info ORDEM client_age DESC;
|
O código acima irá classificar as página visitada em linhas em ordem decrescente com base no client_age
.
os resultados serão semelhantes a este:
1
2 3 4 5 6 7 8 |
client_id | client_firstname | client_lastname | client_age | client_email
———–+——————+—————–+————+———————— 1 | John | Turf | 17 | [email protected] 2 | Raizel | Mendez | 16 | [email protected] 3 | Gwyneth | Damon | 16 | [email protected] 5 | Dereck | Scott | 10 | [email protected] 4 | Yeshua | Galisanao | 8 | [email protected] (5 LINHAS) |
Como esperado, os valores de client_age
coluna são classificados e retornados em ordem decrescente.
conclusão
ordenação dos seus resultados pode trazer ordem e legibilidade a dados desorganizados, e é importante saber como especificar as suas preferências de ordenação nas suas consultas de base de dados. Neste tutorial, falamos sobre a cláusula PostgreSQL ORDER BY
, que lhe permite escolher entre ordem ascendente e ordem descendente como opções de ordenação. Com os exemplos que discutimos anteriormente como um guia, você será capaz de especificar a ordem de ordenação em suas próprias consultas de banco de dados.
apenas o código
mostrado abaixo são todos os excertos de código que vimos ao longo do nosso tutorial. Sinta-se livre para copiá-los e modificá-los para caber seus próprios casos de uso.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SELECT * FROM client_info ORDER BY DESC client_age;
CRIAR TABELA client_info( client_id INT CHAVE PRIMÁRIA NÃO NULO, client_firstname TEXTO NÃO NULO, client_lastname TEXTO NÃO NULO, client_age INT not NULL, client_email TEXTO NÃO NULO ); INSERT INTO client_info(client_id,client_firstname, client_lastname, client_age, client_email) VALUES (1,’John’,’Turf’,17,’[email protected]’), (2,’Raizel’,’Mendez’,16,’[email protected]’), (3,’Gwyneth’,’Damon’,16,’[email protected]’), (4,’Yeshua’,’Galisanao’,8,’[email protected]’), (5,’Dereck’,’Scott’,10,’[email protected]’); SELECT * FROM client_info ORDEM client_firstname ASC; SELECT * FROM client_info ORDEM client_age DESC; |