Latest news

SQL JOIN: analisi delle Query e delle tabelle di dati

L’analisi proposta qui di seguito sulle join SQL necessita di alcune conoscenze di base relative al macro-argomento dei database relazionali; più nello specifico si parla di concetti come: relazioni, tuple, attributi o chiavi.

SQL Join – introduzione

Una Join SQL concede la possibilità di “interrogare” mediante query più tabelle costituenti i database relazionali. Le join restituiscono sottoforma di tabella i risultati ottenuti dalla combinazione dei dati memorizzati in diverse tabelle.

La Join SQL si basa su di una combinazione derivante da una selezione e un prodotto cartesiano ovvero su di una operazione algebrica relazionale. L’utente selezionerà quindi il tipo di join, definendo una condizione di selezione, in modo da determinare quali dati di pertinenza delle rispettive tabelle di output devono essere trasferiti alla tabella dei risultati.

Ogni Join è basato su delle operazioni di algebra relazionale, tra cui distinguiamo il prodotto cartesiano e la selezione.

  • Prodotto cartesiano
  • Selezione

Il prodotto cartesiano

Il prodotto cartesiano anche conosciuto come “unione incrociata” può essere definito come un’operazione che vede il collegamento di due o più insiemi. Tale prodotto è utilizzato, nel modello di database relazionale, per collegare diversi set di tuple sotto forma di tabelle. A questo punto si avrà come risultato di tale operazione un nuovo insieme di tuple ordinate dove ognuna di esse è composta da un elemento di ogni set iniziale.

L’operatore per il prodotto cartesiano nell’algebra relazionale è rappresentato dal segno di moltiplicazione (×).

Un’operazione in cui il prodotto cartesiano è dato da due tabelle di un database è conosciuta come Cross join nella terminologia SQL.

La selezione

Sempre con riferimento all’algebra relazionale, la selezione è una operazione che permette di relazionare tuple specifiche da un set iniziale, inviandole in seguito come risultato. Al fine di determinare quali tuple sono incluse nel set di risultati è possibile utilizzare una espressione di confronto. Il risultato della selezione sarà dato da un insieme di tuple caratterizzate da determinati requisiti. Tali tuple dovranno difatti soddisfare la condizione di selezione definita nell’espressione di confronto.

La lettera greca Sigma (σ) viene utilizzata come operatore in questo caso.

Tipologie di join SQL

Con riferimento al database relazionale, sono utilizzate diverse tipologie di join SQL le quali consentono di eseguire determinate query ricorrendo all’utilizzo di un insieme di tabelle di database. Per fare ciò è necessario che le tabelle selezionate siano collegate tra di loro mediante relazioni a chiave esterna.

Le tipologie di join più importanti sono elencate qui di seguito:

  • Inner join: può essere definita come una forma filtrata della cross join. Relativamente a tale tipologia, solo le tuple di entrambe le tabelle di output (che soddisfino i criteri nonché la condizione di selezione definiti dall’utente) convergono nel risultato impostato essendo unite insieme.
  • Outer join: può essere definita come un’estensione dell’inner join. In questo caso, le tuple di entrambe le tabelle di output soddisfacenti, come nel caso delle inner, la condizione di selezione precedentemente definita dall’utente, sono contenute nell’insieme dei risultati di una outer. Tali tipologie di join sono implementate di conseguenza come left, right, full outer join, analizzate nel dettaglio qui si seguito.
sql join

SQL JOIN

Un JOIN combina i record di due tabelle. Il JOIN abbina valori di colonne correlate in due tabelle.

Una query può contenere zero, una o più operazioni di JOIN.

SQL JOIN – Tipi

I Join vengono espressi in maniera logica usando la sintassi Transact-SQL come esplicitato qui di seguito:

Tipo

Descrizione

JOIN Abbina i record di entrambe le tabelle
LEFT JOIN o (Join di Sinistra) Abbina i record della tabella sinistra (la prima) con i record della tabella destra
RIGHT JOIN (Join di Destra) Abbina i record della tabella destra (l’ultima) con i record della tabella sinistra
FULL JOIN (Join Completa) Include tutti i record di sinistra e di destra, indipendentemente dalla loro corrispondenza

SQL JOIN – Diagramma

sql join – diagramma

I dettagli su queste operazioni di JOIN sono analizzati qui di seguito.

SQL LEFT JOIN – Join di sinistra 

Una LEFT JOIN esegue un join a partire dalla tabella di sinistra. Pertanto, vengono inclusi tutti i record corrispondenti della tabella di destra. Le righe senza corrispondenza avranno valori di colonna NULL (nulli).

sql left join – join di sinistra

SQL RIGHT JOIN – Join di destra 

In questo caso si esegue un join a partire dalla tabella di destra. Pertanto, vengono inclusi tutti i record corrispondenti della tabella di sinistra. Le righe senza corrispondenza avranno valori di colonna NULL.

sql right join – join di destra

SQL FULL JOIN – Join completa 

Una JOIN COMPLETA restituisce tutti i record di entrambe le tabelle, includendo i record che non hanno corrispondenze. Le righe senza corrispondenza avranno valori di colonna NULL.

sql full join – join completa

Hai bisogno di maggiori informazioni?

I nostri esperti IT sapranno certamente aiutarti!