logo

Rozdiel medzi Union a Union All

UNION a UNION ALL sú dva najdôležitejšie operátory SQL používané v databáze na kombinovanie sady výsledkov z viacerých tabuliek. Tieto operátory nám umožňujú použiť viacero SELECT dotazov, získať požadované výsledky a potom ich spojiť do konečného výstupu . V tomto článku sa pozrieme na to, ako sa navzájom líšia. Pred porovnaním si v krátkosti povieme o týchto operátoroch.

Čo je operátor Únie?

Operátor Union v MySQL nám umožňuje kombinovať dva alebo viac výsledkov z viacerých SELECT dotazov do jednej sady výsledkov. Má predvolenú funkciu odstráňte duplicitné riadky zo stolov. Táto syntax operátora vždy používa názov stĺpca v prvom príkaze SELECT ako názvy stĺpcov výstupu.

MySQL Únia musí dodržiavať tieto základné pravidlá:

  • Počet a poradie stĺpcov by mali byť rovnaké vo všetkých dopytoch.
  • Zodpovedajúca pozícia stĺpcov každého výberového dotazu musí mať kompatibilný typ údajov.
  • Názov stĺpca vybraný v rôznych SELECT dotazoch musí byť v rovnakom poradí.
  • Názov stĺpca prvého dotazu SELECT budú názvy stĺpcov výstupu.

POZNÁMKA: Musíme vedieť, že Union a Join sú odlišné.

  1. JOIN kombinuje údaje z viacerých rôznych tabuliek, zatiaľ čo UNION kombinuje údaje z viacerých podobných tabuliek.
  2. JOIN pripojí výstup horizontálne, zatiaľ čo UNION skombinuje sadu výsledkov vertikálne.

Nižšie uvedené vizuálne znázornenie to vysvetľuje jasnejšie:

reťazec na celé číslo
Únia verzus Únia všetci

Ak si chcete prečítať viac informácií o operátorovi Union, kliknite sem .

Čo je Union All?

Operátor UNION ALL kombinuje dva alebo viac výsledkov z viacerých SELECT dotazov a vracia všetky záznamy do jednej sady výsledkov. Neodstráni duplicitné riadky z výstupu príkazov SELECT.

Môžeme to pochopiť pomocou nasledujúceho vizuálneho znázornenia.

Únia verzus Únia všetci

Union vs. Union All operátor

Nasledujúca porovnávacia tabuľka rýchlo vysvetľuje ich hlavné rozdiely:

UNION UNION VŠETKO
Kombinuje sadu výsledkov z viacerých tabuliek a vráti odlišné záznamy do jedného súboru výsledkov. Kombinuje sadu výsledkov z viacerých tabuliek a vráti všetky záznamy do jedného súboru výsledkov.
Nasleduje základ syntax operátora UNION:
SELECT zoznam stĺpcov FROM tabuľka1
UNION
SELECT zoznam stĺpcov FROM tabuľka2;
Nasleduje základ syntax operátora UNION ALL:
SELECT zoznam stĺpcov FROM tabuľka1
UNION VŠETKO
SELECT zoznam stĺpcov FROM tabuľka2;
Má predvolenú funkciu na odstránenie duplicitných riadkov z výstupu. Nemá žiadnu funkciu na odstránenie duplicitných riadkov z výstupu.
Jeho výkon je pomalý pretože nájdenie a následné odstránenie duplicitných záznamov si vyžaduje čas. Jeho výkon je rýchly pretože neodstraňuje duplicitné riadky.
Väčšina používateľov databázy uprednostňuje používanie tohto operátora. Väčšina používateľov databáz neuprednostňuje používanie tohto operátora.

Union a Union All Príklad

Pochopme rozdiely medzi operátormi Union a Union All na príklade. Predpokladajme, že máme tabuľku s názvom ' Študent ' a ' Študent2 “, ktorý obsahuje nasledujúce údaje:

Tabuľka: Študent

Únia verzus Únia všetci

Tabuľka: Študent2

Únia verzus Únia všetci

Nasledujúci príkaz SQL vráti jednoznačné názvy miest z oboch tabuliek pomocou dotazu UNION:

príklad
 SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City; 

Po vykonaní vyššie uvedeného príkazu dostaneme výstup uvedený nižšie, pretože operátor Únie vráti iba odlišné hodnoty.

Únia verzus Únia všetci

Nasledujúci príkaz SQL sa vráti názvy všetkých miest vrátane duplikátov z oboch tabuliek pomocou dotazu UNION ALL:

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

Po vykonaní vyššie uvedeného príkazu dostaneme výstup uvedený nižšie, pretože operátor Union All vráti celé záznamy bez odstránenia odlišných hodnôt.

Únia verzus Únia všetci