PostgreSQL Union, Union VŠECHNY s příklady

Co je to PostgreSQL Svaz?

Jedno PostgreSQL Operátor UNION se používá pro kombinování sad výsledků z více než jednoho příkazu SELECT do jedné sady výsledků. Všechny duplicitní řádky z výsledků příkazů SELECT jsou odstraněny. Operátor UNION pracuje za dvou podmínek:

  • Dotazy SELECT MUSÍ vrátit podobný počet dotazů.
  • Datové typy všech odpovídajících sloupců musí být kompatibilní.

Operátor UNION se běžně používá ke kombinování dat ze souvisejících tabulek, které nebyly dokonale normalizovány.

Syntax

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Zde je vysvětlení výše uvedených parametrů:

Výraz_1, výraz_2, … výraz_n jsou výpočty nebo sloupce, které potřebujete načíst.

Tabulky jsou tabulky, ze kterých potřebujete získat záznamy.

Podmínka(y) WHERE jsou podmínky, které musí být splněny, aby bylo možné záznamy načíst.

Poznámka: protože operátor UNION nevrací duplikáty, nebude mít použití UNION DISTINCT žádný vliv na výsledky.

PostgreSQL svaz

Operátor UNION odstraňuje duplikáty. Pojďme si to ukázat.

Máme databázi s názvem Demo s následujícími tabulkami:

Rezervovat:

PostgreSQL svaz

Cena:

PostgreSQL svaz

Spustíme následující příkaz:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Příkaz vrátí následující:

PostgreSQL svaz

Sloupec id se zobrazí v tabulkách Kniha i Cena. Ve výsledku se však objeví pouze jednou. Důvod je ten PostgreSQL Operátor UNION nevrací duplikáty.

PostgreSQL Union All

Tento operátor kombinuje sady výsledků z více než jednoho příkazu SELECT bez odstranění duplikátů. Operátor vyžaduje, aby každý příkaz SELECT měl podobný počet polí ve výsledných sadách podobných datových typů.

Syntaxe:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Zde je vysvětlení výše uvedených parametrů:

Výraz_1, výraz_2, … výraz_n jsou výpočty nebo sloupce, které potřebujete načíst.

Tabulky jsou tabulky, ze kterých potřebujete získat záznamy.

Podmínka(y) WHERE jsou podmínky, které musí být splněny, aby bylo možné záznamy načíst.

Poznámka: Oba výrazy musí mít stejný počet výrazů.

Použijeme následující tabulky:

Rezervovat:

PostgreSQL Union All

Cena:

PostgreSQL Union All

Spusťte následující příkaz:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Mělo by vrátit následující:

PostgreSQL Union All

Duplikáty nebyly odstraněny.

SEŘADIT PODLE

Jedno PostgreSQL Operátor UNION lze použít společně s klauzulí ORDER BY k uspořádání výsledků dotazu. Abychom to demonstrovali, použijeme následující tabulky:

Cena:

SEŘADIT PODLE

Cena 2:

SEŘADIT PODLE

Zde je příkaz, který ukazuje, jak používat operátor UNION spolu s klauzulí ORDER BY:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

Příkaz vrátí následující:

SEŘADIT PODLE

Záznamy byly seřazeny podle sloupce ceny. Klauzule standardně řadí záznamy ve vzestupném pořadí. Chcete-li je seřadit sestupně, přidejte klauzuli DESC, jak je uvedeno níže:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Příkaz vrátí následující:

SEŘADIT PODLE

Záznamy byly seřazeny podle sloupce ceny v sestupném pořadí.

Kdy použít Union a kdy použít Union all?

Operátor UNION použijte, pokud máte více tabulek s podobnou strukturou, ale z nějakého důvodu rozdělené. Je dobré, když potřebujete odstranit/odstranit duplicitní záznamy.

Operátor UNION ALL použijte, když nepotřebujete odstranit/odstranit duplicitní záznamy.

Pomocí pgAdmin

Nyní se podívejme, jak byly provedeny všechny tři akce pomocí pgAdmin.

Jak používat PostgreSQL Sjednocení pomocí pgAdmin

Následuje postup krok za krokem, jak používat PostgreSQL Sjednocení pomocí pgAdmin

Chcete-li provést totéž prostřednictvím pgAdmin, postupujte takto:

Krok 1) Přihlášení
Přihlaste se ke svému účtu pgAdmin.

Krok 2) Klikněte na Databáze

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

Použijte  PostgreSQL Sjednocení pomocí pgAdmin

Krok 3) Zadejte dotaz
Zadejte dotaz v editoru dotazů:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Krok 4) Klepněte na tlačítko Spustit.
Dále klikněte na tlačítko Spustit. Jak je vidět na obrázku níže.

Použijte  PostgreSQL Sjednocení pomocí pgAdmin

Mělo by vrátit následující:

Použijte  PostgreSQL Sjednocení pomocí pgAdmin

Union All

Krok 1) Přihlaste se ke svému účtu pgAdmin.

Krok 2)

  1. Na navigační liště vlevo klikněte na Databáze.
  2. Klepněte na tlačítko Demo.

Použijte  PostgreSQL Sjednotit vše pomocí pgAdmin

Krok 3) Zadejte dotaz v editoru dotazů:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Krok 4) Klepněte na tlačítko Spustit.

Použijte  PostgreSQL Sjednotit vše pomocí pgAdmin

Mělo by vrátit následující:

Použijte  PostgreSQL Sjednotit vše pomocí pgAdmin

SEŘADIT PODLE

Operátor UNION ALL lze zkombinovat s klauzulí ORDER BY a seřadit výsledky ve výsledné sadě. Například:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

Příkaz vrátí následující:

Použijte  PostgreSQL OBJEDNÁVEJTE pomocí pgAdmin

Výsledky byly objednány.

Shrnutí

  • Jedno PostgreSQL Operátor UNION kombinuje výsledky z více než jednoho příkaz SELECT do jedné výsledkové sady.
  • Operátor UNION nevrací duplicitní záznamy.
  • Chcete-li výsledky seřadit, zkombinujte je s doložkou ORDER BY.
  • Operátor UNION ALL kombinuje výsledky z více než jednoho příkazu SELECT do jedné sady výsledků.
  • Operátor UNION ALL neodstraňuje duplikáty.

Stáhněte si databázi použitou v tomto kurzu