Skillnaden mellan Union och Union All
UNION och UNION ALL är de två viktigaste SQL-operatorerna som används i databasen för att kombinera resultatuppsättningen från flera tabeller. Dessa operatorer tillåter oss att använda flera SELECT-frågor, hämta de önskade resultaten och sedan kombinera dem till en slutlig utdata . I den här artikeln ska vi se hur de skiljer sig från varandra. Innan vi gör en jämförelse kommer vi kortfattat att diskutera dessa operatörer.
Vad är en unionsoperatör?
Union operator i MySQL tillåter oss att kombinera två eller flera resultat från flera SELECT-frågor till en enda resultatuppsättning. Den har en standardfunktion till ta bort dubblettraderna från borden. Denna operatorsyntax använder alltid kolumnens namn i den första SELECT-satsen för att vara kolumnnamnen för utdata.
MySQL Unionen måste följa dessa grundläggande regler:
- Antalet och ordningen på kolumnerna bör vara samma i alla frågor.
- Motsvarande kolumnposition för varje urvalsfråga måste ha en kompatibel datatyp.
- Kolumnnamnet som valts i de olika SELECT-frågorna måste vara i samma ordning.
- Kolumnnamnet för den första SELECT-frågan kommer att vara kolumnnamnen för utdata.
OBS: Vi måste veta att Union och Join är olika.
- JOIN kombinerar data från flera olika tabeller, medan UNION kombinerar data från flera liknande tabeller.
- JOIN lägger till resultatet horisontellt, medan UNION kombinerar resultatet vertikalt.
Den visuella representationen nedan förklarar det tydligare:
För att läsa mer information om Union-operatören, klicka här.
Vad är Union All?
UNION ALL-operatorn kombinerar två eller flera resultat från flera SELECT-frågor och returnerar alla poster till en enda resultatuppsättning. Den tar inte bort dubblettraderna från utdata från SELECT-satserna.
Vi kan förstå det med följande visuella representation.
Union vs. Union All Operator
Följande jämförelsetabell förklarar deras huvudsakliga skillnader på ett snabbt sätt:
| UNION | UNION ALLA |
|---|---|
| Den kombinerar resultatuppsättningen från flera tabeller och returnerar distinkta poster till en enda resultatuppsättning. | Den kombinerar resultatuppsättningen från flera tabeller och returnerar alla poster till en enda resultatuppsättning. |
| Följande är det grundläggande syntax av UNION-operatör: VÄLJ kolumnlista FRÅN tabell1 UNION VÄLJ kolumnlista FRÅN tabell2; | Följande är det grundläggande syntax av UNION ALL-operatör: VÄLJ kolumnlista FRÅN tabell1 UNION ALLA VÄLJ kolumnlista FRÅN tabell2; |
| Den har en standardfunktion för att eliminera dubblettraderna från utdata. | Den har ingen funktion för att eliminera dubblettraderna från utgången. |
| Dess prestandan är långsam eftersom det tar tid att hitta och sedan ta bort dubbletter av poster. | Dess prestandan är snabb eftersom det inte eliminerar dubblettraderna. |
| De flesta databasanvändare föredrar att använda denna operator. | De flesta databasanvändare föredrar inte att använda denna operator. |
Union och Union Alla exempel
Låt oss förstå skillnaderna mellan Union och Union Alla operatörer genom ett exempel. Anta att vi har en tabell som heter ' Studerande ' och ' Student 2 ' som innehåller följande data:
Tabell: Student
Tabell: Elev2
Efter SQL-satsen returnerar distinkt namn på städer från båda tabellerna med hjälp av UNION-frågan:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Efter att ha kört ovanstående uttalande kommer vi att få utdata nedan eftersom unionsoperatören endast returnerar de distinkta värdena.
Följande SQL-sats returneras alla städers namn inklusive dubbletter från båda tabellerna med hjälp av UNION ALL-frågan:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Efter att ha kört ovanstående sats kommer vi att få utdata nedan eftersom Union All-operatören returnerar hela poster utan att eliminera distinkta värden.