Rozdiel SQL medzi operátormi Union, Union All a Union Distinct

Rozdiel Sql Medzi Operatormi Union Union All A Union Distinct



SQL nám poskytuje operátor UNION, ktorý nám umožňuje kombinovať sady výsledkov dvoch alebo viacerých príkazov SELECT do jednej sady výsledkov. V SQL existujú tri hlavné typy operátorov UNION: UNION, UNION ALL a UNION DISTINCT.

Tento tutoriál skúma tieto tri typy UNIONS a poskytuje reálne a praktické príklady práce s nimi.







POZNÁMKA: V tomto príklade použijeme na demonštračné účely vzorovú databázu Sakila. Pred vykonaním týchto príkazov sa uistite, že ho máte nainštalovaný. Ak sa chcete dozvedieť viac, môžete si pozrieť náš tutoriál.



Operátor SQL UNION

Ako už bolo spomenuté, operátor UNION nám umožňuje skombinovať množinu výsledkov dvoch alebo viacerých príkazov select a odstrániť duplicitné hodnoty. Syntax operátora UNION je nasledovná:



VYBERTE stĺpec1, stĺpec2, ...
Z tabuľky 1
UNION
VYBERTE stĺpec1, stĺpec2, ...
Z tabuľky2;


V predchádzajúcom príklade syntaxe používame príkazy SELECT na získanie údajov zo špecifikovaných tabuliek. Operátor UNION potom skombinuje dve sady výsledkov do jednej sady. Uveďme si príklad, ako to urobiť pomocou tabuľky aktérov, ktorá je definovaná v databáze Sakila.





Zvážte nasledujúci príklad dotazu, ktorý získa krstné meno a priezvisko aktérov z tabuľky aktérov a tabuľky zákazníka:

SELECT meno, priezvisko
OD herca
UNION
SELECT meno, priezvisko
OD zákazníka; SELECT meno, priezvisko
OD herca
UNION
SELECT meno, priezvisko
OD zákazníka;


Predchádzajúci dotaz načíta mená a priezviská z tabuliek aktérov a zákazníkov a vráti hodnoty ako jeden výsledok.



Príklad výstupu je nasledujúci:

Operátor SQL UNION ALL

Na rozdiel od operátora UNION, ktorý odstraňuje duplicitné hodnoty z množiny výsledkov, operátor UNION vracia všetky riadky tabuliek vrátane duplikátov.

Syntax je nasledovná:

VYBERTE stĺpec1, stĺpec2, ...
Z tabuľky 1
UNION VŠETKO
VYBERTE stĺpec1, stĺpec2, ...
Z tabuľky2;


Nasledujúci príklad vyberá meno a priezvisko z tabuliek aktérov a zákazníkov v databáze Sakila:

SELECT meno, priezvisko
OD herca
UNION VŠETKO
SELECT meno, priezvisko
OD zákazníka;


Príklad výstupu je nasledujúci:

Operátor SQL UNION DISTINCT

Ďalším typom odborového operátora je UNION DISTINCT. Tento operátor je jednoducho duplikátom operátora UNION, ktorý vykonáva podobnú akciu.

Syntax je nasledovná:

VYBERTE stĺpec1, stĺpec2, ...
Z tabuľky 1
ODLIŠNÁ ÚNIA
VYBERTE stĺpec1, stĺpec2, ...
Z tabuľky2;


Príkazy SELECT načítajú údaje zo špecifikovaných tabuliek a operátor UNION DISTINCT skombinuje sady výsledkov do jednej sady výsledkov, ktorá obsahuje jedinečné riadky.

V príklade databázy Sakila môžeme spustiť nasledujúci príkaz:

SELECT meno, priezvisko
OD herca
ODLIŠNÁ ÚNIA
SELECT meno, priezvisko
OD zákazníka;


To by malo vrátiť podobný výsledok ako operátor UNION.

Záver

Naučili sme sa pracovať s rôznymi typmi UNION v SQL. Operátor UNION skombinuje množinu výsledkov dvoch alebo viacerých príkazov select a odstráni duplicitné záznamy. UNION ALL vykoná podobnú akciu, ale obsahuje všetky duplicitné riadky. Nakoniec, UNION DISTINCT je identický s natívnym operátorom UNION.