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é.
- JOIN kombinuje údaje z viacerých rôznych tabuliek, zatiaľ čo UNION kombinuje údaje z viacerých podobných tabuliek.
- 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
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.
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
Tabuľka: Študent2
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.
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.