UNION i UNION ALL són els dos operadors SQL més essencials utilitzats a la base de dades per combinar el conjunt de resultats de múltiples taules. Aquests operadors ens permeten utilitzar múltiples consultes SELECT, recuperar els resultats desitjats i, a continuació, combinar-los en una sortida final. . En aquest article, veurem com són diferents entre ells. Abans de fer una comparació, parlarem breument sobre aquests operadors.
Què és un operador de la Unió?
L'operador d'unió a MySQL ens permet combinar dos o més resultats de múltiples consultes SELECT en un únic conjunt de resultats. Té una característica predeterminada eliminar les files duplicades de les taules. Aquesta sintaxi de l'operador sempre utilitza el nom de la columna a la primera instrucció SELECT per ser els noms de columna de la sortida.
MySQL Unió ha de seguir aquestes regles bàsiques:
- El nombre i l'ordre de les columnes han de ser els mateixos en totes les consultes.
- La posició de les columnes corresponents de cada consulta de selecció ha de tenir un tipus de dades compatible.
- El nom de columna seleccionat a les diferents consultes SELECT ha d'estar en el mateix ordre.
- El nom de columna de la primera consulta SELECT seran els noms de columna de la sortida.
NOTA: Hem de saber que Union i Join són diferents.
- JOIN combina dades de diverses taules diferents, mentre que UNION combina dades de diverses taules similars.
- JOIN afegeix la sortida horitzontalment, mentre que UNION combina el conjunt de resultats verticalment.
La representació visual següent ho explica amb més claredat:
Per llegir més informació sobre l'operador de la Unió, cliqueu aquí .
Què és Union All?
L'operador UNION ALL combina dos o més resultats de múltiples consultes SELECT i retorna tots els registres en un únic conjunt de resultats. No elimina les files duplicades de la sortida de les sentències SELECT.
Ho podem entendre amb la següent representació visual.
Unió vs. Union Tots els operadors
La següent taula de comparació explica les seves principals diferències d'una manera ràpida:
UNIÓ | UNIÓ TOTS |
---|---|
Combina el conjunt de resultats de múltiples taules i retorna registres diferents en un únic conjunt de resultats. | Combina el conjunt de resultats de múltiples taules i retorna tots els registres en un únic conjunt de resultats. |
El següent és el bàsic sintaxi de l'operador UNION: SELECT column_list FROM taula1 UNIÓ SELECT column_list FROM table2; | El següent és el bàsic sintaxi de l'operador UNION ALL: SELECT column_list FROM taula1 UNIÓ TOTS SELECT column_list FROM table2; |
Té una característica predeterminada per eliminar les files duplicades de la sortida. | No té cap funció per eliminar les files duplicades de la sortida. |
El seu el rendiment és lent perquè es necessita temps per trobar i després eliminar els registres duplicats. | El seu el rendiment és ràpid perquè no elimina les files duplicades. |
La majoria dels usuaris de bases de dades prefereixen utilitzar aquest operador. | La majoria dels usuaris de bases de dades no prefereixen utilitzar aquest operador. |
Unió i Unió Tots Exemple
Entenem les diferències entre els operadors Union i Union All mitjançant un exemple. Suposem que tenim una taula anomenada ' Estudiant 'i' Estudiant 2 ' que conté les dades següents:
Taula: Estudiant
Taula: Estudiant2
La següent instrucció SQL retorna el nom diferent de les ciutats de les dues taules mitjançant la consulta UNION:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Després d'executar la instrucció anterior, obtindrem la sortida següent perquè l'operador Union només retorna els valors diferents.
La instrucció SQL següent retorna el nom de totes les ciutats, inclosos els duplicats de les dues taules utilitzant la consulta UNION ALL:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Després d'executar la instrucció anterior, obtindrem la sortida següent perquè l'operador Union All retorna registres sencers sense eliminar valors diferents.