Rozdíl SQL mezi operátory Union, Union All a Union Distinct

Rozdil Sql Mezi Operatory Union Union All A Union Distinct



SQL nám poskytuje operátor UNION, který nám umožňuje kombinovat sady výsledků dvou nebo více příkazů SELECT do jediné sady výsledků. V SQL existují tři hlavní typy operátorů UNION: UNION, UNION ALL a UNION DISTINCT.

Tento výukový program zkoumá tyto tři typy UNION a poskytuje reálné a praktické příklady práce s nimi.







POZNÁMKA: V tomto příkladu použijeme ukázkovou databázi Sakila pro demonstrační účely. Před provedením těchto příkazů se ujistěte, že jej máte nainstalovaný. Chcete-li se dozvědět více, můžete se podívat na náš tutoriál.



Operátor SQL UNION

Jak již bylo zmíněno, operátor UNION nám umožňuje zkombinovat sadu výsledků dvou nebo více příkazů select a odstranit duplicitní hodnoty. Syntaxe operátoru UNION je následující:



VYBRAT sloupec1, sloupec2, ...
Z tabulky 1
SVAZ
VYBRAT sloupec1, sloupec2, ...
Z tabulky2;


V předchozím příkladu syntaxe používáme příkazy SELECT k načtení dat ze zadaných tabulek. Operátor UNION pak zkombinuje dvě sady výsledků do jedné sady. Vezměme si příklad, jak to udělat pomocí tabulky aktérů, která je definována v databázi Sakila.





Zvažte následující příklad dotazu, který načte křestní jméno a příjmení aktérů z tabulky aktérů a tabulky zákazníka:

SELECT jméno, příjmení
OD herce
SVAZ
SELECT jméno, příjmení
OD zákazníka; SELECT jméno, příjmení
OD herce
SVAZ
SELECT jméno, příjmení
OD zákazníka;


Předchozí dotaz provede křestní jména a příjmení z tabulek aktér a zákazník a vrátí hodnoty jako jeden výsledek.



Příklad výstupu je následující:

Operátor SQL UNION ALL

Na rozdíl od operátoru UNION, který odstraňuje duplicitní hodnoty ze sady výsledků, operátor UNION vrací všechny řádky tabulek včetně duplikátů.

Syntaxe je následující:

VYBRAT sloupec1, sloupec2, ...
Z tabulky 1
UNION VŠECHNY
VYBRAT sloupec1, sloupec2, ...
Z tabulky2;


Následující příklad vybere jméno a příjmení z tabulek herců a zákazníků v databázi Sakila:

SELECT jméno, příjmení
OD herce
UNION VŠECHNY
SELECT jméno, příjmení
OD zákazníka;


Příklad výstupu je následující:

Operátor SQL UNION DISTINCT

Dalším typem odborového operátora je UNION DISTINCT. Tento operátor je jednoduše duplikátem operátoru UNION, který provádí podobnou akci.

Syntaxe je následující:

VYBRAT sloupec1, sloupec2, ...
Z tabulky 1
UNION VÝZNAM
VYBRAT sloupec1, sloupec2, ...
Z tabulky2;


Příkazy SELECT načítají data ze zadaných tabulek a operátor UNION DISTINCT zkombinuje sady výsledků do jediné sady výsledků, která obsahuje jedinečné řádky.

V příkladu databáze Sakila můžeme spustit následující příkaz:

SELECT jméno, příjmení
OD herce
UNION VÝZNAM
SELECT jméno, příjmení
OD zákazníka;


To by mělo vrátit podobný výsledek jako operátor UNION.

Závěr

Naučili jsme se pracovat s různými typy UNION v SQL. Operátor UNION zkombinuje sadu výsledků dvou nebo více příkazů select a odstraní duplicitní záznamy. UNION ALL provede podobnou akci, ale zahrnuje všechny duplicitní řádky. A konečně UNION DISTINCT je identický s nativním operátorem UNION.