Unisci due tabelle in SQL

Unisci Due Tabelle In Sql



In SQL, l'unione delle tabelle si riferisce al processo di combinazione dei dati di due tabelle separate in un determinato database in una singola unità basata su una colonna o criteri comuni. Sì, se sembra un tavolo, è esattamente quello che è.

L'unione o l'unione di tabelle è una funzionalità rinomata dei database relazionali ed è incredibilmente potente. Ci consente di consolidare le informazioni provenienti da più fonti per creare approfondimenti sui dati più coerenti e significativi. Consente inoltre ai database relazionali di essere altamente scalabili (non flessibili) poiché possiamo suddividere i dati in blocchi più piccoli e gestibili a cui possiamo fare riferimento in seguito.

In questo tutorial tratteremo i fondamenti delle unioni di tabelle o dell'unione di tabelle. Diamo un'occhiata agli esempi di tabelle del mondo reale per consolidare le nostre conoscenze.







Tabella campione

Prima di addentrarci nel mondo delle unioni di tabelle, impostiamo le tabelle di base che utilizzeremo a scopo dimostrativo.



Considera due tabelle che contengono le informazioni sui dipendenti e sullo stipendio, come mostrato nelle seguenti query di esempio:



CREA TABELLA dipendenti (

Employee_id INT AUTO_INCREMENT CHIAVE PRIMARIA,

nome_VARCHAR( cinquanta ),

cognome VARCHAR( cinquanta ),

dipartimento VARCHAR( cinquanta )

);

Possiamo quindi inserire i dati di esempio nella tabella del dipendente come mostrato nelle seguenti query:





INSERISCI NEI VALORI dei dipendenti (nome, cognome, dipartimento).

( 'Alice' , 'Fabbro' , 'Risorse umane' ),

( 'Bob' , 'Johnson' , 'Marketing' ),

( 'Charlie' , 'Wilson' , 'Finanza' ),

( 'Davide' , 'Marrone' , 'Saldi' ),

( 'Eva' , 'Davis' , 'Ingegneria' );

Procediamo e creiamo una nuova tabella per memorizzare le informazioni sullo stipendio come segue:

CREA TABELLA stipendi (

stipendio_id INT AUTO_INCREMENT CHIAVE PRIMARIA,

ID_impiegato INT,

stipendio DECIMAL( 10 , 2 ),

data_inizio DATA,

data_fine DATA,

CHIAVE ESTERA (employee_id) RIFERIMENTI Employees(employee_id)

);

Aggiungere i dati del campione di inserimento nella tabella come segue:



INSERISCI INTO stipendi (ID_dipendente, stipendio, data_inizio, data_fine) VALORI
( 1 , 60000,00 , '2023-01-01' , '31-12-2023' ),
( 2 , 55000,00 , '2023-01-01' , '31-12-2023' ),
( 3 , 65000,00 , '2023-01-01' , '31-12-2023' ),
( 4 , 58000,00 , '2023-01-01' , '31-12-2023' ),
( 5 , 70000,00 , '2023-01-01' , '31-12-2023' );

Questo dovrebbe fornirci due tabelle che possono aiutarci a dimostrare il concetto di unione/unione di tabelle in SQL.

Unione/unione di tabelle SQL

Esploriamo i vari tipi di unioni di tabelle che possiamo eseguire. Tratteremo quelli fondamentali man mano che progrediremo verso quelli più avanzati.

UNIONE INTERNA

Il primo e più comune tipo di join di tabella in SQL è un INNER JOIN. Una INNER JOIN ci consente di combinare le righe di due tabelle in base a una condizione specifica. Questo tipo restituisce quindi solo le righe in cui esiste una corrispondenza tra le tabelle.

Prendiamo come esempio le tabelle “dipendenti” e “stipendi” che abbiamo creato in precedenza. Per eseguire una INNER JOIN in SQL, utilizziamo la clausola INNER JOIN come segue:

SELEZIONARE

e.ID_dipendente,

e.nome_,

e.cognome,

e.dipartimento,

s.stipendio

DA

dipendenti e

Stipendi INNER JOIN s SU

e.id_dipendente = s.id_dipendente;

Nella query di esempio fornita, utilizziamo un INNER JOIN per unire le tabelle 'employees' e 'salaries' nella colonna 'employee_id' che esiste in entrambe le tabelle. Il set risultante contiene solo le righe corrispondenti di entrambe le tabelle.

Un esempio di output è il seguente:

GIUNZIONE ESTERNA SINISTRA

Abbiamo anche un LEFT OUTER JOIN che combina tutte le righe della tabella di sinistra e le righe corrispondenti della tabella di destra. Se non esiste alcuna corrispondenza nella tabella di destra, il join utilizza il valore NULL.

SELEZIONARE

e.ID_dipendente,

e.nome_,

e.cognome,

e.dipartimento,

s.stipendio

DA

dipendenti e

SINISTRA ISCRIVITI stipendi s

SU

e.id_dipendente = s.id_dipendente;

In questo esempio, eseguiamo un LEFT OUTER JOIN per unire le tabelle “employees” e “stipendi”. Vengono incluse tutte le righe della tabella 'dipendenti' e vengono aggiunte le righe corrispondenti della tabella 'stipendi'. Tuttavia, i valori NULL sono inclusi nella colonna 'stipendio' per le righe non corrispondenti.

UNIONE SQL

Un altro metodo per unire le tabelle in SQL consiste nell'utilizzare l'operatore UNION. Questo operatore ci consente di combinare i risultati di due o più istruzioni select in un unico set di risultati.

Le colonne in ciascuna istruzione SELECT devono avere lo stesso tipo di dati affinché l'unione sia applicabile.

Un esempio è il seguente:

SELECT ID_impiegato, nome, cognome, dipartimento, NULL AS stipendio

DA dipendenti e

UNIONE

SELECT ID_impiegato, NULL AS nome, NULL AS cognome, NULL AS dipartimento, stipendio

DA stipendi s ;

In questo caso, un'UNIONE unisce le tabelle “dipendenti” e “stipendi”. Creiamo quindi le colonne NULL in ciascuna istruzione SELECT per garantire che entrambe le tabelle abbiano un numero simile di colonne.

Le UNIONI sono tecnicamente comuni ma possono essere utili soprattutto quando è necessario unire tabelle con strutture diverse.

Conclusione

In questo tutorial, abbiamo esplorato i fondamenti dell'unione/unione di due tabelle in un unico set di risultati. È bene tenere presente che ci sono molti join più avanzati discussi in questo post.