SQL razlika između operatora Union, Union All i Union Distinct operatora

Sql Razlika Izmedu Operatora Union Union All I Union Distinct Operatora



SQL nam daje operator UNION koji nam omogućuje kombiniranje skupova rezultata dviju ili više naredbi SELECT u jedan skup rezultata. Postoje tri glavne vrste UNION operatora u SQL-u: UNION, UNION ALL i UNION DISTINCT.

Ovaj vodič istražuje ove tri vrste UNIONA i pruža stvarne i praktične primjere rada s njima.







BILJEŠKA: U ovom primjeru koristit ćemo oglednu Sakila bazu podataka u svrhu demonstracije. Provjerite jeste li ga instalirali prije izvršavanja ovih naredbi. Možete pogledati naš vodič o tome da biste saznali više.



SQL UNION operator

Kao što je spomenuto, operator UNION omogućuje nam kombiniranje skupa rezultata dviju ili više naredbi odabira i uklanjanje dupliciranih vrijednosti. Sintaksa operatora UNION je sljedeća:



SELECT stupac1, stupac2, ...
IZ tablice1
UNIJA
SELECT stupac1, stupac2, ...
IZ tablice2;


U sintaksi prethodnog primjera koristimo naredbe SELECT za dohvaćanje podataka iz navedenih tablica. Operator UNION zatim kombinira dva skupa rezultata u jedan skup. Uzmimo primjer kako to učiniti pomoću tablice aktera koja je definirana u bazi podataka Sakila.





Razmotrite sljedeći primjer upita koji dohvaća ime i prezime aktera iz tablice aktera i tablice korisnika:

SELECT ime, prezime
OD glumca
UNIJA
SELECT ime, prezime
OD kupca; SELECT ime, prezime
OD glumca
UNIJA
SELECT ime, prezime
OD kupca;


Prethodni upit ispravlja imena i prezimena iz tablica aktera i kupaca i vraća vrijednosti kao jedan rezultat.



Primjer izlaza je sljedeći:

SQL UNION ALL operator

Za razliku od operatora UNION koji uklanja duplicirane vrijednosti iz skupa rezultata, operator UNION vraća sve retke tablice uključujući duplikate.

Sintaksa je sljedeća:

SELECT stupac1, stupac2, ...
IZ tablice1
UNIJA SVE
SELECT stupac1, stupac2, ...
IZ tablice2;


Sljedeći primjer odabire ime i prezime iz tablica glumaca i kupaca u bazi podataka Sakila:

SELECT ime, prezime
OD glumca
UNIJA SVE
SELECT ime, prezime
OD kupca;


Primjer izlaza je sljedeći:

SQL UNION DISTINCT operator

Druga vrsta operatora unije je UNION DISTINCT. Ovaj je operator jednostavno duplikat operatora UNION koji izvodi sličnu radnju.

Sintaksa je sljedeća:

SELECT stupac1, stupac2, ...
IZ tablice1
UNIJA DISTINKT
SELECT stupac1, stupac2, ...
IZ tablice2;


Izjave SELECT dohvaćaju podatke iz navedenih tablica, a operator UNION DISTINCT kombinira skupove rezultata u jedan skup rezultata koji uključuje jedinstvene retke.

U primjeru Sakila baze podataka možemo pokrenuti sljedeću naredbu:

SELECT ime, prezime
OD glumca
UNIJA DISTINKT
SELECT ime, prezime
OD kupca;


Ovo bi trebalo vratiti sličan rezultat kao operator UNION.

Zaključak

Naučili smo kako raditi s različitim vrstama UNIONA u SQL-u. Operator UNION kombinira skup rezultata dvaju ili više naredbi odabira i uklanja dvostruke zapise. UNION ALL izvodi sličnu radnju, ali uključuje sve duplicirane retke. Konačno, UNION DISTINCT identičan je izvornom UNION operatoru.