Nella gestione di database con SQL, esistono diverse funzioni che ci facilitano la manipolazione e il recupero efficiente dei dati. Due di queste, a cui sviluppatori e analisti di dati fanno spesso ricorso, sono la clausola UNION e l’operatore IN. Di seguito una guida completa sulle loro funzioni, le condizioni di utilizzo e la sintassi.

Clausola UNION

La clausola UNION è una clausola SQL utilizzata per combinare due o più risultati di istruzioni SELECT.

Per usare questa clausola non si possono unire tabelle a caso. Esistono regole precise da rispettare affinché la query non produca errori:

  • Ogni istruzione SELECT combinata deve avere lo stesso numero di colonne.
  • I tipi di dati delle colonne corrispondenti devono essere uguali o compatibili.
  • Le colonne in ogni istruzione SELECT devono essere nello stesso ordine.

Per impostazione predefinita, la clausola UNION seleziona e mostra solo valori distinti. Ciò significa che il sistema filtra automaticamente i risultati, in modo che non si verifichi alcuna duplicazione dei dati.

Sintassi di UNION:

SQL

SELECT nome_colonna/e FROM tabella1

UNION

SELECT nome_colonna/e FROM tabella2;

Clausola UNION ALL

All’interno della famiglia UNION esiste anche una variante sintattica chiamata UNION ALL.

La differenza principale tra le due risiede nel modo in cui il sistema gestisce i dati duplicati. Mentre UNION elimina i duplicati, UNION ALL consente la duplicazione dei dati. Questa clausola mostra tutte le righe risultanti da ogni istruzione SELECT combinata, indipendentemente dalla presenza di valori esattamente identici.

Sintassi di UNION ALL:

SQL

SELECT nome_colonna/e FROM tabella1

UNION ALL

SELECT nome_colonna/e FROM tabella2;

Nota: L’uso di UNION ALL è solitamente più veloce rispetto a UNION semplice, perché il sistema di elaborazione non deve impiegare tempo aggiuntivo per analizzare e rimuovere le righe duplicate.

Operatore IN

L’operatore IN è un operatore logico aggiunto alla clausola WHERE per filtrare i dati in base a più possibili valori contemporaneamente.

Questo operatore è spesso considerato un metodo abbreviato per sostituire l’uso ripetuto dell’operatore OR quando si seleziona su più condizioni. L’impiego di IN rende il codice SQL molto più ordinato, conciso e facile da leggere.

Sintassi dell’operatore IN (con un elenco di valori specifici):

SQL

SELECT nome_colonna/e FROM nome_tabella

WHERE nome_colonna IN (valore1, valore2, …);

Sintassi dell’operatore IN (con sottoquery / istruzione SELECT):
Oltre a definire i valori manualmente, è possibile inserire un’altra istruzione SELECT tra parentesi per generare dinamicamente un elenco di valori.

SQL

SELECT nome_colonna/e FROM nome_tabella

WHERE nome_colonna IN (ISTRUZIONE_SELECT);

Shares:
Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *