UNION en UNION ALL zijn de twee meest essentiële SQL-operatoren die in de database worden gebruikt voor het combineren van de resultatenset uit meerdere tabellen. Met deze operators kunnen we meerdere SELECT-query's gebruiken, de gewenste resultaten ophalen en deze vervolgens combineren tot een uiteindelijke uitvoer . In dit artikel gaan we zien hoe ze van elkaar verschillen. Voordat we een vergelijking maken, bespreken we deze operatoren kort.
gesorteerde arraylist java
Wat is een Union-operator?
Met de Union-operator in MySQL kunnen we twee of meer resultaten van meerdere SELECT-query's combineren in één resultatenset. Het heeft een standaardfunctie verwijder de dubbele rijen van de tafels. Deze operatorsyntaxis gebruikt altijd de kolomnaam in de eerste SELECT-instructie als de kolomnamen van de uitvoer.
MySQL Union moet deze basisregels volgen:
- Het aantal en de volgorde van de kolommen moeten in alle query's hetzelfde zijn.
- De corresponderende kolompositie van elke selectiequery moet een compatibel gegevenstype hebben.
- De kolomnaam die in de verschillende SELECT-query's is geselecteerd, moet in dezelfde volgorde staan.
- De kolomnaam van de eerste SELECT-query zijn de kolomnamen van de uitvoer.
OPMERKING: We moeten weten dat Union en Join verschillend zijn.
- JOIN combineert gegevens uit meerdere verschillende tabellen, terwijl UNION gegevens uit meerdere vergelijkbare tabellen combineert.
- JOIN voegt de uitvoer horizontaal toe, terwijl UNION de resultatenset verticaal combineert.
De onderstaande visuele weergave legt het duidelijker uit:
Klik hier voor meer informatie over de Union-operator.
Wat is Union All?
De operator UNION ALL combineert twee of meer resultaten van meerdere SELECT-query's en retourneert alle records in één resultatenset. Het verwijdert de dubbele rijen niet uit de uitvoer van de SELECT-instructies.
We kunnen het begrijpen met de volgende visuele weergave.
Union versus Union All-operator
In de volgende vergelijkingstabel worden de belangrijkste verschillen op een snelle manier uitgelegd:
UNIE | UNIE ALLEMAAL |
---|---|
Het combineert de resultatenset van meerdere tabellen en retourneert verschillende records in één resultatenset. | Het combineert de resultatenset van meerdere tabellen en retourneert alle records in één resultatenset. |
Hieronder volgt de basis syntaxis van UNION-operator: SELECTEER kolomlijst UIT tabel1 UNIE SELECTEER kolomlijst UIT tabel2; | Hieronder volgt de basis syntaxis van UNION ALL-operator: SELECTEER kolomlijst UIT tabel1 UNIE ALLEMAAL SELECTEER kolomlijst UIT tabel2; |
Het heeft een standaardfunctie om dubbele rijen uit de uitvoer te verwijderen. | Het heeft geen functie om dubbele rijen uit de uitvoer te verwijderen. |
Zijn de prestaties zijn traag omdat het tijd kost om dubbele records te vinden en vervolgens te verwijderen. | Zijn de prestaties zijn snel omdat het de dubbele rijen niet elimineert. |
De meeste databasegebruikers gebruiken deze operator het liefst. | De meeste databasegebruikers gebruiken deze operator liever niet. |
Unie en Unie Alle voorbeelden
Laten we aan de hand van een voorbeeld de verschillen tussen Union en Union All-operatoren begrijpen. Stel dat we een tabel hebben met de naam ' Student ' En ' Student2 ' dat de volgende gegevens bevat:
Tabel: Student
Tabel: Student2
De volgende SQL-instructie retourneert de aparte naam van steden uit beide tabellen met behulp van de UNION-query:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Na het uitvoeren van de bovenstaande instructie krijgen we de onderstaande uitvoer omdat de Union-operator alleen de afzonderlijke waarden retourneert.
Volgende SQL-instructie retourneert alle namen van steden inclusief duplicaten uit beide tabellen met behulp van de UNION ALL-query:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Na het uitvoeren van de bovenstaande instructie krijgen we de onderstaande uitvoer omdat de operator Union All hele records retourneert zonder afzonderlijke waarden te elimineren.