SQL-i erinevus Unioni, Union All ja Union Distinct Operatoride vahel

Sql I Erinevus Unioni Union All Ja Union Distinct Operatoride Vahel



SQL pakub meile UNION-i operaatorit, mis võimaldab kombineerida kahe või enama SELECT-lause tulemuskomplektid üheks tulemuskomplektiks. SQL-is on kolm peamist UNION-operaatoritüüpi: UNION, UNION ALL ja UNION DISTINCT.

See õpetus uurib neid kolme tüüpi LIITUD ning pakub reaalseid ja praktilisi näiteid nendega töötamise kohta.







MÄRGE: Selles näites kasutame demonstreerimise eesmärgil Sakila näidisandmebaasi. Enne nende käskude täitmist veenduge, et see oleks installitud. Selle kohta saate lisateabe saamiseks vaadata meie õpetust.



SQL UNION operaator

Nagu mainitud, võimaldab UNION operaator meil kombineerida kahe või enama valitud avalduse tulemuskomplekti ja eemaldada dubleerivad väärtused. UNION operaatori süntaks on järgmine:



VALI veerg1, veerg2, ...
tabelist1
LIIT
VALI veerg1, veerg2, ...
FROM tabel2;


Eelmises näitesüntaksis kasutame määratud tabelitest andmete toomiseks SELECT-lauseid. Seejärel ühendab UNION operaator kaks tulemuste komplekti üheks komplektiks. Toome näite, kuidas seda teha Sakila andmebaasis määratletud actor-tabeli abil.





Mõelge järgmisele näidispäringule, mis otsib näitlejate tabelist ja kliendi tabelist näitlejate ees- ja perekonnanimed:

VALI ees_nimi, perekonnanimi
näitlejalt
LIIT
VALI ees_nimi, perekonnanimi
Kliendilt; VALI ees_nimi, perekonnanimi
näitlejalt
LIIT
VALI ees_nimi, perekonnanimi
Kliendilt;


Eelmine päring muudab ees- ja perekonnanimed nii tegutseja kui ka kliendi tabelitest ning tagastab väärtused ühe tulemusena.



Näidisväljund on järgmine:

SQL UNION ALL Operaator

Erinevalt UNION-i operaatorist, mis eemaldab tulemuste komplektist duplikaatväärtused, tagastab UNION-operaator kõik tabeliread, sealhulgas duplikaadid.

Süntaks on järgmine:

VALI veerg1, veerg2, ...
tabelist1
LIIT KÕIK
VALI veerg1, veerg2, ...
FROM tabel2;


Järgmises näites valitakse Sakila andmebaasis tegutsejate ja klientide tabelitest ees- ja perekonnanimi:

VALI ees_nimi, perekonnanimi
näitlejalt
LIIT KÕIK
VALI ees_nimi, perekonnanimi
Kliendilt;


Näidisväljund on järgmine:

SQL UNION DISTINCT Operaator

Teist tüüpi ametiühinguoperaatorid on UNION DISTINCT. See operaator on lihtsalt sarnase toimingu sooritava operaatori UNION duplikaat.

Süntaks on järgmine:

VALI veerg1, veerg2, ...
tabelist1
LIIDU ERINEV
VALI veerg1, veerg2, ...
FROM tabel2;


SELECT-laused toovad andmed määratud tabelitest ja UNION DISTINCT operaator ühendab tulemuskomplektid üheks tulemuskomplektiks, mis sisaldab kordumatuid ridu.

Sakila andmebaasi näites saame käivitada järgmise käsu:

VALI ees_nimi, perekonnanimi
näitlejalt
LIIDU ERINEV
VALI ees_nimi, perekonnanimi
Kliendilt;


See peaks andma sarnase tulemuse kui operaator UNION.

Järeldus

Õppisime, kuidas töötada SQL-is erinevat tüüpi LIITUD. Operaator UNION kombineerib kahe või enama valitud lause tulemuse komplekti ja eemaldab topeltkirjed. LIIT KÕIK teostab sarnase toimingu, kuid sisaldab dubleerivaid ridu. Lõpuks on UNION DISTINCT identne kohaliku UNION-operaatoriga.