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

Obsah:

Anonim

Co je PostgreSQL Union?

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

  • SELECT dotazy 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 kombinaci dat ze souvisejících tabulek, které nebyly normalizovány dokonale.

V tomto tutoriálu PostgreSQL se naučíte:

  • Co je PostgreSQL Union?
  • Syntax
  • unie
  • Union All
  • SEŘADIT PODLE
  • Kdy použít Union a Kdy použít Union all?
  • Pomocí pgAdmin

Syntax

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNIONSELECT expression_1, expression_2,… expression_nFROM 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 načíst záznamy.

Podmínky WHERE jsou podmínky, které musí být splněny, aby mohly být načteny záznamy.

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

unie

Operátor UNION odstraní duplikáty. Ukažme to.

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

Rezervovat:

Cena:

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

SELECT idFROM BookUNIONSELECT idFROM Price;

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

Sloupec id se objeví v tabulkách Book i Price. Ve výsledku se však objeví pouze jednou. Důvodem je, že operátor PostgreSQL UNION nevrací duplikáty.

Union All

Tento operátor kombinuje sady výsledků z více než jednoho příkazu SELECT, aniž by odstranil duplikáty. Provozovatel vyžaduje, aby každý příkaz SELECT měl podobný počet polí ve výsledkových sadách podobných datových typů.

Syntax:

SELECT expression_1, expression_2,… expression_nFROM tables[WHERE condition(s)]UNION ALLSELECT expression_1, expression_2,… expression_nFROM 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 načíst záznamy.

Podmínky WHERE jsou podmínky, které musí být splněny, aby mohly být načteny záznamy.

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

Použijeme následující tabulky:

Rezervovat:

Cena:

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

SELECT idFROM BookUNION ALLSELECT idFROM price;

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

Duplikáty nebyly odstraněny.

SEŘADIT PODLE

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

Cena:

Cena 2:

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

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price;

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

Záznamy byly seřazeny podle sloupce ceny. Klauzule ve výchozím nastavení objednává záznamy vzestupně. Chcete-li je seřadit sestupně, přidejte klauzuli DESC, jak je znázorněno níže:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

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

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 se dělíte. Je dobré, když potřebujete odstranit / odstranit duplicitní záznamy.

Pokud nepotřebujete odstraňovat / eliminovat duplicitní záznamy, použijte operátor UNION ALL.

Pomocí pgAdmin

Nyní se podívejme, jak se všechny tři akce prováděly pomocí pgAdmin.

unie

Chcete-li toho dosáhnout prostřednictvím pgAdmin, postupujte takto:

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

Krok 2)

  1. Na navigačním panelu vlevo klikněte na Databáze.
  2. Klikněte na ukázku.

Krok 3) Zadejte dotaz do editoru dotazů:

SELECT *FROM PriceUNIONSELECT *FROM Price2ORDER BY price DESC;

Krok 4) Klikněte na tlačítko Provést.

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

Union All

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

Krok 2)

  1. Na navigačním panelu vlevo klikněte na Databáze.
  2. Klikněte na ukázku.

Krok 3) Zadejte dotaz do editoru dotazů:

SELECT idFROM BookUNION ALLSELECT idFROM price;

Krok 4) Klikněte na tlačítko Provést.

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

SEŘADIT PODLE

Operátor UNION ALL lze kombinovat s klauzulí ORDER BY a uspořádat výsledky do sady výsledků. Například:

SELECT idFROM BookUNION ALLSELECT idFROM priceORDER BY id;

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

Výsledky byly objednány.

Souhrn:

  • Operátor PostgreSQL UNION kombinuje výsledky z více než jednoho příkazu SELECT do jedné sady výsledků.
  • Operátor UNION nevrací duplicitní záznamy.
  • Chcete-li objednat výsledky, zkombinujte je s klauzulí 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 neodstraní duplikáty.

Stáhněte si databázi použitou v tomto výukovém programu