Úvod
když načtete data v PostgreSQL, pravděpodobně budete chtít, aby vaše výsledky byly seřazeny určitým způsobem. V PostgreSQL můžete zadat pořadí řazení výsledků pomocí klauzule ORDER BY
. Tato klauzule umožňuje určit sloupec, podle kterého chcete třídit výsledky,a také vám umožňuje vybrat mezi vzestupným a sestupným pořadím. V tomto článku se blíže podíváme na možnosti vzestupného a sestupného pořadí PostgreSQL.
předpoklady
abychom mohli sledovat příklady, na které se podíváme v tomto tutoriálu, musíte se ujistit, že PostgreSQL server je správně nainstalován a nakonfigurován. Služba musí být spuštěna na pozadí.
Pokud pracujete v prostředí Linuxu nebo Windows, PostgreSQL si můžete stáhnout zde.
jaké je pořadí PostgreSQL podle klauzule?
kdykoli chceme načíst data z tabulky PostgreSQL, vytvoříme příkaz SELECT
. Ve výchozím nastavení PostgreSQL vrátí řádky ve stejném pořadí, v jakém byly vloženy. Můžeme však vyladit naše výsledky tak, aby byly čitelnější jejich tříděním. Výsledky lze třídit dvěma způsoby: vzestupně a sestupně. Používáme klauzuli PostgreSQL ORDER BY
v našem SELECT
k určení našich preferencí třídění.
níže je uvedena syntaxe pro PostgreSQL ORDER BY
klauzule:
1
2 3 4 5 6 |
ZVOLTE
name_of_the_column target_table |
Pojďme diskutovat o této syntaxe v trochu podrobněji:
- První, jsme zadat název sloupce, který budeme používat pro třídění v
ORDER BY
klauzule. Pokud chceme Třídit podle počtu sloupců, oddělíme je čárkou. - Po zadání názvu sloupce použijeme
ASC
pro zadání vzestupného pořadí neboDESC
pro sestupné pořadí. Výchozí hodnota klauzuleORDER BY
jeASC
nebo vzestupné pořadí, pokud není zadána žádná hodnota.
vytvoření ukázkové datové sady
budeme muset vytvořit ukázkovou datovou sadu, která bude použita v našich příkladech. Začněme vytvořením tabulky s názvem 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 ŘÁDKŮ) |
Příklad Použití PostgreSQL ORDER BY ASC
Nyní, že jsme se naučili, jak PostgreSQL ORDER BY
prohlášení funguje, budeme se snažit používat to, aby třídit záznamy, které jsme vytvořili v předchozí části.
řekněme, použijte následující prohlášení:
1
|
SELECT * FROM client_info POŘADÍ PODLE client_firstname ASC;
|
Toto prohlášení bude instruovat PostgreSQL vyberte všechny řádky v tabulce client_info
a třídit je na základě client_firstname
sloupce ve vzestupném pořadí.
výsledky tohoto dotazu budou vypadat takto:
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 ŘÁDKŮ) |
můžeme vidět, že hodnoty v client_firstname
pole jsou řazena ve vzestupném abecedním pořadí– náš dotaz byl úspěšný.
Příklad Použití PostgreSQL ORDER BY DESC
V předchozím příkladu jsme použili ORDER BY
klauzule s ASC
možnost vzestupně. Nyní uděláme opak a použijeme ORDER BY
s DESC
pro řazení v sestupném pořadí.
K tomu, budeme používat následující prohlášení:
1
|
SELECT * FROM client_info POŘADÍ PODLE client_age DESC;
|
kód je uvedeno výše, bude řadit vyhledané řádky v sestupném pořadí na základě client_age
.
výsledky budou vypadat takto:
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 ŘÁDKŮ) |
Jak jsme očekávali, hodnoty v client_age
sloupce jsou řazeny a vrátil se v sestupném pořadí.
závěr
třídění výsledků může přinést pořadí a čitelnost neuspořádaných dat a je důležité vědět, jak určit předvolby řazení v databázových dotazech. V tomto tutoriálu jsme hovořili o klauzuli PostgreSQL ORDER BY
, která Vám umožňuje vybrat si mezi vzestupným a sestupným pořadím jako možnosti řazení. S příklady, které jsme diskutovali dříve jako průvodce, budete moci určit pořadí řazení ve své vlastní databázové dotazy.
jen kód
Níže jsou uvedeny všechny úryvky kódu, na které jsme se podívali v celém našem tutoriálu. Neváhejte je zkopírovat a upravit tak, aby vyhovovaly vašim vlastním případům použití.
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SELECT * FROM client_info POŘADÍ PODLE client_age DESC;
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 ); VLOŽIT DO 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 POŘADÍ PODLE client_firstname ASC; SELECT * FROM client_info POŘADÍ PODLE client_age DESC; |