Diferència SQL entre els operadors Union, Union All i Union Distinct

Diferencia Sql Entre Els Operadors Union Union All I Union Distinct



SQL ens proporciona l'operador UNION que ens permet combinar els conjunts de resultats de dues o més sentències SELECT en un únic conjunt de resultats. Hi ha tres tipus principals d'operadors UNION a SQL: UNION, UNION ALL i UNION DISTINCT.

Aquest tutorial explora aquests tres tipus de UNIONS i ofereix exemples reals i pràctics de treballar-hi.







NOTA: En aquest exemple, utilitzarem la base de dades Sakila d'exemple amb finalitats de demostració. Assegureu-vos que el teniu instal·lat abans d'executar aquestes ordres. Podeu consultar el nostre tutorial sobre això per obtenir més informació.



Operador SQL UNION

Com s'ha esmentat, l'operador UNION ens permet combinar el conjunt de resultats de dues o més declaracions selectes i eliminar els valors duplicats. La sintaxi de l'operador UNION és la següent:



SELECCIONA columna1, columna2,...
DE LA taula 1
UNIÓ
SELECCIONA columna1, columna2,...
DE la taula 2;


A l'exemple de sintaxi anterior, fem servir les instruccions SELECT per recuperar les dades de les taules especificades. L'operador UNION combina els dos conjunts de resultats en un sol conjunt. Prenguem un exemple de com fer-ho utilitzant la taula d'actors que es defineix a la base de dades Sakila.





Considereu la consulta d'exemple següent que recupera el nom i el cognom dels actors de la taula d'actors i de la taula del client:

SELECCIONA nom, cognom
D'Actor
UNIÓ
SELECCIONA nom, cognom
DEL client; SELECCIONA nom, cognom
D'Actor
UNIÓ
SELECCIONA nom, cognom
DEL client;


La consulta anterior recull els noms i cognoms tant de les taules d'actors com de clients i retorna els valors com a resultat únic.



Un exemple de sortida és el següent:

Operador SQL UNION ALL

A diferència de l'operador UNION que elimina els valors duplicats del conjunt de resultats, l'operador UNION retorna totes les files de les taules, inclosos els duplicats.

La sintaxi és la següent:

SELECCIONA columna1, columna2,...
DE LA taula 1
UNIÓ TOTS
SELECCIONA columna1, columna2,...
DE la taula2;


L'exemple següent selecciona el nom i el cognom de les taules d'actors i clients de la base de dades de Sakila:

SELECCIONA primer_nom, cognoms
D'Actor
UNIÓ TOTS
SELECCIONA primer_nom, cognoms
DEL client;


Un exemple de sortida és el següent:

Operador SQL UNION DISTINCT

L'altre tipus d'operador sindical és el UNION DISTINCT. Aquest operador és simplement un duplicat de l'operador UNION que realitza una acció similar.

La sintaxi és la següent:

SELECCIONA columna1, columna2,...
DE LA taula 1
UNION DISTINCT
SELECCIONA columna1, columna2,...
DE la taula2;


Les sentències SELECT recuperen les dades de les taules especificades i l'operador UNION DISTINCT combina els conjunts de resultats en un únic conjunt de resultats que inclou les files úniques.

A l'exemple de la base de dades Sakila, podem executar l'ordre següent:

SELECCIONA primer_nom, cognoms
D'Actor
UNION DISTINCT
SELECCIONA primer_nom, cognoms
DEL client;


Això hauria de retornar un resultat similar al de l'operador UNION.

Conclusió

Hem après a treballar amb els diferents tipus de UNIONS en SQL. L'operador UNION combina el conjunt de resultats de dues o més declaracions selectes i elimina els registres duplicats. UNION ALL realitza una acció similar, però inclou les files duplicades. Finalment, l'UNION DISTINCT és idèntic a un operador natiu UNION.