logo

Razlika med Union in Union All

UNION in UNION ALL sta dva najpomembnejša operatorja SQL, ki se uporabljata v bazi podatkov za združevanje nabora rezultatov iz več tabel. Ti operatorji nam omogočajo, da uporabimo več poizvedb SELECT, pridobimo želene rezultate in jih nato združimo v končni rezultat . V tem članku bomo videli, kako se med seboj razlikujejo. Pred primerjavo se bomo na kratko pogovorili o teh operaterjih.

Kaj je operater Unije?

Operator Union v MySQL nam omogoča združitev dveh ali več rezultatov iz več poizvedb SELECT v en niz rezultatov. Ima privzeto funkcijo za odstranite podvojene vrstice iz tabel. Ta sintaksa operatorja vedno uporablja ime stolpca v prvem stavku SELECT kot imena stolpcev izhoda.

MySQL Zveza mora upoštevati ta osnovna pravila:

  • Število in vrstni red stolpcev morata biti enaka v vseh poizvedbah.
  • Ustrezen položaj stolpcev vsake izbirne poizvedbe mora imeti združljiv podatkovni tip.
  • Ime stolpca, izbrano v različnih poizvedbah SELECT, mora biti v istem vrstnem redu.
  • Ime stolpca prve poizvedbe SELECT bo ime stolpca izhoda.

OPOMBA: Vedeti moramo, da se Union in Join razlikujeta.

  1. JOIN združuje podatke iz več različnih tabel, medtem ko UNION združuje podatke iz več podobnih tabel.
  2. JOIN doda izhod vodoravno, medtem ko UNION združi nabor rezultatov navpično.

Spodnja vizualna predstavitev to bolj jasno pojasni:

Union proti Union All

Če želite prebrati več informacij o operaterju Union, kliknite tukaj.

Kaj je Union All?

Operator UNION ALL združi dva ali več rezultatov iz več poizvedb SELECT in vrne vse zapise v en sam niz rezultatov. Ne odstrani podvojenih vrstic iz izhoda stavkov SELECT.

To lahko razumemo z naslednjo vizualno predstavitvijo.

Union proti Union All

Union proti Union All Operator

Naslednja primerjalna tabela na hiter način razloži njihove glavne razlike:

UNION UNIJA VSE
Združuje nabor rezultatov iz več tabel in vrne različne zapise v en sam niz rezultatov. Združuje niz rezultatov iz več tabel in vrne vse zapise v en sam niz rezultatov.
Sledi osnovno sintaksa operaterja UNION:
IZBERI seznam_stolpcev IZ tabele1
UNION
SELECT column_list FROM table2;
Sledi osnovno sintaksa operaterja UNION ALL:
IZBERI seznam_stolpcev IZ tabele1
UNIJA VSE
SELECT column_list FROM table2;
Ima privzeto funkcijo za odstranjevanje podvojenih vrstic iz izpisa. Nima funkcije za odstranjevanje podvojenih vrstic iz izpisa.
Njegovo delovanje je počasno ker je za iskanje in nato odstranitev podvojenih zapisov potreben čas. Njegovo delovanje je hitro ker ne odstrani podvojenih vrstic.
Večina uporabnikov baze podatkov raje uporablja ta operater. Večina uporabnikov baze podatkov ne želi uporabljati tega operaterja.

Union in Union All Primer

Razumejmo razlike med operaterji Union in Union All na primeru. Recimo, da imamo tabelo z imenom ' Študent ' in ' študent2 ', ki vsebuje naslednje podatke:

Tabela: Študent

Union proti Union All

Tabela: Študent2

Union proti Union All

Naslednji stavek SQL vrne razločno ime mest iz obeh tabel z uporabo poizvedbe UNION:

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

Po izvedbi zgornjega stavka bomo dobili spodnji rezultat, ker operater Union vrne samo različne vrednosti.

Union proti Union All

Naslednji stavek SQL se vrne vsa imena mest, vključno z dvojniki iz obeh tabel z uporabo poizvedbe UNION ALL:

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

Po izvedbi zgornjega stavka bomo dobili spodnji rezultat, ker operator Union All vrne celotne zapise, ne da bi odstranil različne vrednosti.

Union proti Union All