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:
Cena:
Spustíme následující příkaz:
SELECT id FROM Book UNION SELECT id FROM Price;
Příkaz vrátí následující:
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:
Cena:
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í:
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:
Cena 2:
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í:
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í:
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
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
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.
Mělo by vrátit následující:
Union All
Krok 1) Přihlaste se ke svému účtu pgAdmin.
Krok 2)
- Na navigační liště vlevo klikněte na Databáze.
- Klepněte na tlačítko Demo.
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.
Mělo by vrátit následující:
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í:
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