UNION og UNION ALL er de to viktigste SQL-operatorene som brukes i databasen for å kombinere resultatsettet fra flere tabeller. Disse operatørene lar oss bruke flere SELECT-spørringer, hente de ønskede resultatene og deretter kombinere dem til en endelig utgang . I denne artikkelen skal vi se hvordan de er forskjellige fra hverandre. Før vi foretar en sammenligning, vil vi kort diskutere disse operatørene.
Hva er en unionsoperatør?
Union-operatør i MySQL lar oss kombinere to eller flere resultater fra flere SELECT-spørringer til et enkelt resultatsett. Den har en standardfunksjon til fjern de dupliserte radene fra bordene. Denne operatorsyntaksen bruker alltid kolonnenavnet i den første SELECT-setningen til å være kolonnenavnene til utdataene.
MySQL Unionen må følge disse grunnleggende reglene:
- Antallet og rekkefølgen på kolonnene skal være det samme i alle søk.
- Den korresponderende kolonneposisjonen for hvert utvalgsspørring må ha en kompatibel datatype.
- Kolonnenavnet som er valgt i de forskjellige SELECT-spørringene, må være i samme rekkefølge.
- Kolonnenavnet til den første SELECT-spørringen vil være kolonnenavnene til utdataene.
MERK: Vi må vite at Union og Join er forskjellige.
- JOIN kombinerer data fra flere forskjellige tabeller, mens UNION kombinerer data fra flere lignende tabeller.
- JOIN legger utdataene horisontalt, mens UNION kombinerer resultatsettet vertikalt.
Den visuelle representasjonen nedenfor forklarer det tydeligere:
For å lese mer informasjon om Union-operatøren, klikk her.
Hva er Union All?
UNION ALL-operatoren kombinerer to eller flere resultater fra flere SELECT-spørringer og returnerer alle poster til ett enkelt resultatsett. Den fjerner ikke de dupliserte radene fra utdataene til SELECT-setningene.
Vi kan forstå det med følgende visuelle representasjon.
Union vs. Union All Operator
Følgende sammenligningstabell forklarer hovedforskjellene deres på en rask måte:
UNION | UNION ALLE |
---|---|
Den kombinerer resultatsettet fra flere tabeller og returnerer distinkte poster i ett enkelt resultatsett. | Den kombinerer resultatsettet fra flere tabeller og returnerer alle poster i ett enkelt resultatsett. |
Følgende er det grunnleggende syntaks av UNION-operatør: VELG kolonneliste FRA tabell1 UNION VELG kolonneliste FRA tabell2; | Følgende er det grunnleggende syntaks av UNION ALL-operatør: VELG kolonneliste FRA tabell1 UNION ALLE VELG kolonneliste FRA tabell2; |
Den har en standardfunksjon for å eliminere dupliserte rader fra utdataene. | Den har ingen funksjon for å eliminere dupliserte rader fra utdataene. |
Det er ytelsen er treg fordi det tar tid å finne og deretter fjerne dupliserte poster. | Det er ytelsen er rask fordi det ikke eliminerer dupliserte rader. |
De fleste databasebrukere foretrekker å bruke denne operatoren. | De fleste databasebrukere foretrekker ikke å bruke denne operatoren. |
Union og Union Alle eksempel
La oss forstå forskjellene mellom Union og Union Alle operatører gjennom et eksempel. Anta at vi har en tabell som heter ' Student ' og ' Student 2 ' som inneholder følgende data:
Tabell: Student
Tabell: Student2
Etter SQL-setning returnerer tydelig navn på byer fra begge tabellene ved å bruke UNION-spørringen:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Etter å ha utført setningen ovenfor, vil vi få utdataene nedenfor fordi unionsoperatøren bare returnerer de distinkte verdiene.
Følgende SQL-setning returnerer alle bynavn inkludert duplikater fra begge tabellene ved å bruke UNION ALL-spørringen:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Etter å ha utført setningen ovenfor, vil vi få utdataene nedenfor fordi Union All-operatøren returnerer hele poster uten å eliminere distinkte verdier.