logo

Rozdíl mezi Union a Union All

UNION a UNION ALL jsou dva nejdůležitější operátory SQL používané v databázi pro kombinování sady výsledků z více tabulek. Tyto operátory nám umožňují použít více dotazů SELECT, získat požadované výsledky a poté je spojit do konečného výstupu . V tomto článku se podíváme, jak se od sebe liší. Než provedeme srovnání, budeme stručně diskutovat o těchto operátorech.

nat vs postel

Co je operátor Unie?

Operátor Union v MySQL nám umožňuje kombinovat dva nebo více výsledků z více dotazů SELECT do jediné sady výsledků. Má výchozí funkci odstranit duplicitní řádky ze stolů. Tato syntaxe operátoru vždy používá název sloupce v prvním příkazu SELECT jako názvy sloupců výstupu.

MySQL Unie musí dodržovat tato základní pravidla:

  • Počet a pořadí sloupců by měly být ve všech dotazech stejné.
  • Odpovídající pozice sloupců každého výběrového dotazu musí mít kompatibilní datový typ.
  • Název sloupce vybraný v různých dotazech SELECT musí být ve stejném pořadí.
  • Název sloupce prvního dotazu SELECT budou názvy sloupců výstupu.

POZNÁMKA: Musíme vědět, že Union a Join jsou odlišné.

  1. JOIN kombinuje data z více různých tabulek, zatímco UNION kombinuje data z více podobných tabulek.
  2. JOIN připojí výstup horizontálně, zatímco UNION zkombinuje sadu výsledků vertikálně.

Níže uvedená vizuální reprezentace to vysvětluje jasněji:

Union vs Union All

Pro více informací o operátorovi Union klikněte zde .

Co je Union All?

Operátor UNION ALL kombinuje dva nebo více výsledků z více dotazů SELECT a vrací všechny záznamy do jediné sady výsledků. Neodstraní duplicitní řádky z výstupu příkazů SELECT.

Můžeme to pochopit pomocí následující vizuální reprezentace.

Union vs Union All

Union vs. Union All Operator

Následující srovnávací tabulka rychle vysvětluje jejich hlavní rozdíly:

SVAZ UNION VŠECHNY
Kombinuje sadu výsledků z více tabulek a vrací odlišné záznamy do jediné sady výsledků. Kombinuje sadu výsledků z více tabulek a vrátí všechny záznamy do jediné sady výsledků.
Následuje základní syntax operátora UNION:
SELECT seznam_sloupců FROM tabulka1
SVAZ
SELECT seznam_sloupců FROM tabulka2;
Následuje základní syntax operátora UNION ALL:
SELECT seznam_sloupců FROM tabulka1
UNION VŠECHNY
SELECT seznam_sloupců FROM tabulka2;
Má výchozí funkci pro odstranění duplicitních řádků z výstupu. Nemá žádnou funkci k odstranění duplicitních řádků z výstupu.
Své výkon je pomalý protože nalezení a odstranění duplicitních záznamů nějakou dobu trvá. Své výkon je rychlý protože nevylučuje duplicitní řádky.
Většina uživatelů databáze dává přednost použití tohoto operátoru. Většina uživatelů databáze tento operátor nepoužívá.

Union a Union All Příklad

Pojďme pochopit rozdíly mezi operátory Union a Union All na příkladu. Předpokládejme, že máme tabulku s názvem ' Student ' a ' Student2 “, který obsahuje následující údaje:

Tabulka: Student

Union vs. Union All

Tabulka: Student2

Union vs. Union All

Následující příkaz SQL vrátí jednoznačné názvy měst z obou tabulek pomocí dotazu UNION:

 SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City; 

Po provedení výše uvedeného příkazu získáme níže uvedený výstup, protože operátor Union vrací pouze odlišné hodnoty.

Union vs. Union All

Vrátí se následující příkaz SQL názvy všech měst včetně duplikátů z obou tabulek pomocí dotazu UNION ALL:

 SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City; 

Po provedení výše uvedeného příkazu získáme níže uvedený výstup, protože operátor Union All vrací celé záznamy bez eliminace odlišných hodnot.

Union vs. Union All