Ú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; expressionsjsou všechny sloupce a pole, které chcete mít ve výsledku.tablessyntaxe je tabulka nebo tabulky, ze kterých chcete extrahovat výsledky.conditionspř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_expressionsklíč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.FROMklauzule 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_rowssyntax. 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_rowszadejte počet záznamů syntax.offset_valueurč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í.