Differenza SQL tra operatori Union, Union All e Union Distinct

Differenza Sql Tra Operatori Union Union All E Union Distinct



SQL ci fornisce l'operatore UNION che ci consente di combinare i set di risultati di due o più istruzioni SELECT in un singolo set di risultati. Esistono tre tipi principali di operatori UNION in SQL: UNION, UNION ALL e UNION DISTINCT.

Questo tutorial esplora questi tre tipi di UNION e fornisce esempi pratici e pratici di come lavorare con essi.







NOTA: In questo esempio, utilizzeremo il database di esempio Sakila a scopo dimostrativo. Assicurati di averlo installato prima di eseguire questi comandi. Puoi dare un'occhiata al nostro tutorial su questo per saperne di più.



Operatore UNION SQL

Come accennato, l'operatore UNION ci consente di combinare il set di risultati di due o più istruzioni select e rimuovere i valori duplicati. La sintassi dell'operatore UNION è la seguente:



SELEZIONA colonna1, colonna2, ...
A PARTIRE DAL tavolo1
UNIONE
SELEZIONA colonna1, colonna2, ...
A PARTIRE DAL tavolo2;


Nella sintassi dell'esempio precedente, utilizziamo le istruzioni SELECT per recuperare i dati dalle tabelle specificate. L'operatore UNION combina quindi i due set di risultati in un unico set. Facciamo un esempio su come farlo utilizzando la tabella degli attori definita nel database Sakila.





Considera la seguente query di esempio che recupera il nome e il cognome degli attori dalla tabella degli attori e dalla tabella del cliente:

SELEZIONA nome, cognome
A PARTIRE DAL attore
UNIONE
SELEZIONA nome, cognome
DAL cliente; SELEZIONA nome, cognome
A PARTIRE DAL attore
UNIONE
SELEZIONA nome, cognome
DAL cliente;


La query precedente recupera il nome e il cognome dalle tabelle attore e cliente e restituisce i valori come risultato singolo.



Un output di esempio è il seguente:

Operatore SQL UNION ALL

A differenza dell'operatore UNION che rimuove i valori duplicati dal set di risultati, l'operatore UNION restituisce tutte le righe delle tabelle inclusi i duplicati.

La sintassi è la seguente:

SELEZIONA colonna1, colonna2, ...
A PARTIRE DAL tavolo1
UNIONE TUTTO
SELEZIONA colonna1, colonna2, ...
A PARTIRE DAL tavolo2;


L'esempio seguente seleziona il nome e il cognome dalle tabelle attore e cliente nel database Sakila:

SELEZIONA nome, cognome
A PARTIRE DAL attore
UNIONE TUTTO
SELEZIONA nome, cognome
DAL cliente;


Un output di esempio è il seguente:

Operatore SQL UNION DISTINCT

L'altro tipo di operatore di unione è UNION DISTINCT. Questo operatore è semplicemente un duplicato dell'operatore UNION che esegue un'azione simile.

La sintassi è la seguente:

SELEZIONA colonna1, colonna2, ...
A PARTIRE DAL tavolo1
UNIONE DISTINTA
SELEZIONA colonna1, colonna2, ...
A PARTIRE DAL tavolo2;


Le istruzioni SELECT recuperano i dati dalle tabelle specificate e l'operatore UNION DISTINCT combina i set di risultati in un unico set di risultati che include le righe univoche.

Nell'esempio del database Sakila, possiamo eseguire il seguente comando:

SELEZIONA nome, cognome
A PARTIRE DAL attore
UNIONE DISTINTA
SELEZIONA nome, cognome
DAL cliente;


Questo dovrebbe restituire un risultato simile a quello dell'operatore UNION.

Conclusione

Abbiamo imparato a lavorare con i vari tipi di UNION in SQL. L'operatore UNION combina il set di risultati di due o più istruzioni select e rimuove i record duplicati. UNION ALL esegue un'azione simile ma include tutte le righe duplicate. Infine, UNION DISTINCT è identico a un operatore UNION nativo.