logo

Verschil tussen Union en Union All

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.

  1. JOIN combineert gegevens uit meerdere verschillende tabellen, terwijl UNION gegevens uit meerdere vergelijkbare tabellen combineert.
  2. JOIN voegt de uitvoer horizontaal toe, terwijl UNION de resultatenset verticaal combineert.

De onderstaande visuele weergave legt het duidelijker uit:

Unie versus Unie allemaal

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.

Unie versus Unie allemaal

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

Unie versus Unie allemaal

Tabel: Student2

Unie versus Unie allemaal

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.

Unie versus Unie allemaal

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.

Unie versus Unie allemaal