Úvod
PostgreSQL je open-source systém pro správu relačních databází (RDBMS). Databázový systém snadno zvládá různé pracovní zátěže a podporuje většinu operačních systémů. Jeho rozšiřitelnost a shoda s SQL dělá z PostgreSQL široce populární RDBMS.
SELECT
příkaz je nejběžněji používaný příkaz jazyka pro manipulaci s daty (DML) v PostgreSQL.
V tomto tutoriálu se naučíte používat příkaz PostgreSQL SELECT s jeho úplnou syntaxí a příklady.
Předpoklady
- Nainstalován a nastaven PostgreSQL.
- Databáze, se kterou se má pracovat (viz, jak vytvořit databázi.)
Příkaz SELECT PostgreSQL
PostgreSQL SELECT
příkaz načte data z jedné nebo několika tabulek v databázi a vrátí data ve výsledkové tabulce, nazývané výsledková sada. Použijte SELECT
příkaz vrátit jeden nebo více řádků odpovídajících zadaným kritériím z databázových tabulek.
SELECT
příkaz je nejsložitější příkaz v SQL s mnoha volitelnými klíčovými slovy a klauzulemi. Níže uvedené sekce vysvětlují SELECT
podrobná syntaxe.
Syntaxe SELECT PostgreSQL
Nejjednodušší forma SELECT
syntaxe příkazu je:
SELECT expressions
FROM tables
WHERE conditions;
expressions
jsou všechny sloupce a pole, které chcete mít ve výsledku.tables
syntaxe je tabulka nebo tabulky, ze kterých chcete extrahovat výsledky.conditions
představují požadavky, které musí být splněny, aby bylo možné vybrat záznamy.
Příklad úplného SELECT
syntaxe příkazu je:
SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]];
Všechny parametry vysvětlíme v sekci níže.
Výběr parametrů PostgreSQL
Možné parametry v SELECT
prohlášení jsou:
ALL
– Volitelný parametr, který vrací všechny odpovídající řádky.DISTINCT
– Parametr, který odstraňuje duplikáty ze sady výsledků.DISTINCT ON
– Volitelný parametr, který eliminuje duplicitní data na základědistinct_expressions
klíčové slovo.expressions
- Všechny sloupce a pole, které chcete zahrnout do výsledku. Zadání hvězdičky (*
) vybere všechny sloupce.tables
- Zadejte tabulky, ze kterých chcete načíst záznamy.FROM
klauzule musí obsahovat alespoň jednu tabulku.WHERE conditions
– Klauzule je volitelná a obsahuje podmínky, které musí být splněny, aby bylo možné filtrovat záznamy v sadě výsledků.GROUP BY expressions
– Volitelná klauzule, která shromažďuje data z více záznamů a seskupuje výsledky podle jednoho nebo více sloupců.HAVING condition
- Nepovinná klauzule použitá v kombinaci sGROUP BY
. Omezuje skupiny vrácených řádků pouze na ty, které splňují podmínkuTRUE
, čímž je filtruje.ORDER BY expression
– Volitelná klauzule, která určuje, který sloupec nebo sloupce se mají použít k řazení dat v sadě výsledků.LIMIT
– Volitelná klauzule, která nastavuje maximální počet záznamů k načtení z tabulky, určený pomocínumber_rows
syntax. První řádek v sadě výsledků je určen hodnotouoffset_value
.FETCH
- Volitelná klauzule, která nastavuje maximální počet záznamů v sadě výsledků. Místofetch_rows
zadejte počet záznamů syntax.offset_value
určuje první řádek v sadě výsledků.FOR UPDATE
- Volitelná klauzule, která uzamkne záznamy potřebné pro spuštění dotazu, dokud nebude transakce dokončena.FOR SHARE
- Volitelná klauzule, která umožňuje použití záznamů jinými transakcemi, ale brání jejich aktualizaci nebo vymazání.
Příklady příkazů PostgreSQL SELECT
Níže uvedené sekce ukazují několik případů použití pro SELECT
prohlášení.
Příklad 1:Vyberte všechna pole
Nejjednodušší způsob, jak vrátit všechna pole z tabulky a zobrazit veškerý obsah tabulky, je použít PostgreSQL SELECT
prohlášení.
Například:
SELECT * FROM actor;
Ve výše uvedeném příkladu výstup zobrazuje všechna pole obsažená v tabulce aktérů.
Příklad 2:Filtrování výsledků tak, aby odpovídaly podmínce
SELECT
umožňuje filtrovat výsledky nastavením podmínky. V následujícím příkladu chceme zobrazit pouze názvy filmů, kde je filmovým jazykem angličtina (language_id=1
):
SELECT title
FROM film
WHERE language_id=1;
Příklad 3:Vyberte pole z více tabulek
PostgreSQL umožňuje zpracovávat data z více tabulek v databázi. Chcete-li získat výsledky z více tabulek v jednom dotazu, použijte JOINS .
Například:
SELECT customer.first_name, customer.last_name, payment.amount
FROM customer
INNER JOIN payment
ON customer.customer_id=payment.customer_id
ORDER BY amount DESC;
Ve výše uvedeném příkladu zkombinujeme dvě tabulky pomocí INNER JOIN
získat sadu výsledků, která zobrazuje sloupce jména a příjmení z jedné tabulky a částku platby z jiné tabulky. Tyto dvě tabulky jsou spojeny pomocí customer_id
sloupec, který je v obou tabulkách stejný.
Výsledky jsou v sestupném pořadí určeném ORDER BY amount DESC
doložka.
Příklad 4:Výběr jednotlivých polí z jedné tabulky
PostgreSQL SELECT
umožňuje vrátit jednotlivá pole z tabulky.
Například:
SELECT first_name, last_name
FROM actor
ORDER BY last_name ASC;
Výše uvedený příklad poskytuje pouze jména a příjmení herců a vynechává ostatní sloupce. Výstup seřadí výsledky podle příjmení ve vzestupném pořadí.
Příklad 5:Zřetězení sloupců
Pokud chcete, aby vaše sada výsledků spojila několik sloupců do jednoho, můžete použít operátor zřetězení ||
pomocí SELECT
prohlášení. Například:
SELECT
first_name || ' ' || last_name
FROM
customer;
V tomto příkladu jsme zřetězili sloupce jméno a příjmení, abychom získali celé jméno každého zákazníka.
Příklad 6:Výpočty
Můžete také použít SELECT
k provedení některých výpočtů, ale pak vynecháte FROM
doložka. Například:
SELECT 15*3/5;
Výstup je výsledkem matematického výrazu zadaného v SELECT
prohlášení.