Database
 sql >> Database >  >> RDS >> Database

SQL Union:una guida completa sull'operatore UNION

Durante la gestione dei dati nei database, spesso tendiamo a utilizzare gli operatori di insiemi in SQL, per recuperare i dati in base ai nostri requisiti combinando due o più istruzioni SELECT. In questo articolo su SQL UNION, parlerò dell'operatore UNION utilizzato per recuperare i dati nella seguente sequenza:

  • Cos'è l'operatore SQL UNION?
  • Sintassi:
    1. Sintassi UNION
    2. Sintassi UNION ALL
  • Differenze tra UNION e UNION ALL
  • Esempi SQL UNION:
    1. Esempio operatore UNION
    2. Esempio di operatore UNION ALL
    3. UNIONE con alias SQL
    4. UNIONE con clausola WHERE
    5. UNION ALL con clausola WHERE
    6. UNIONE con UNISCITI
    7. UNION ALL with JOINS

Iniziamo!

Cos'è l'operatore SQL UNION?

Come suggerisce il nome, questo operatore/ clausola viene utilizzato per combinare i risultati di due o più istruzioni SELECT. Qui ogni istruzione SELECT utilizzata all'interno dell'istruzione UNION deve avere lo stesso numero di colonne nello stesso ordine. Inoltre, tutte le colonne presenti nelle istruzioni SELECT devono avere tipi di dati simili.

La clausola UNION fornisce solo valori univoci come output. Per ogni evenienza, desideri duplicare i valori, devi utilizzare la clausola UNION ALL.

Proseguendo in questo articolo su SQL UNION, cerchiamo di capire la sintassi.

Sintassi SQL UNION

Sintassi UNION

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
UNION
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

Sintassi UNION ALL

SELECT Column1, Column2, Column3, ..., ColumnN FROM Table1
UNION ALL
SELECT Column1, Column2, Column3, ..., ColumnN FROM Table2;

Andando avanti in questo articolo, cerchiamo di capire le differenze tra UNION e UNION ALL.

Differenze tra SQL UNION e UNION ALL

UNIONE UNION ALL
Combina due o più set di risultati e non mantiene i valori duplicati. Combina due o più set di risultati e mantiene i valori duplicati.
Syntax: UNION
Syntax: UNION ALL

Successivamente, in questo articolo su SQL UNION, cerchiamo di comprendere i diversi modi di utilizzare questo operatore.

Esempi di SQL UNION e UNION ALL

Per la tua migliore comprensione, prenderò in considerazione le seguenti tabelle per mostrarti diversi esempi.

Tabella dei dipendenti

EmpID Nome EmpAge Città Codice postale Paese
1 Emma 23 Berlino 12109 Germania
2 Rahul 26 Mumbai 400015 India
3 Aayra 24 New York 10014 Stati Uniti
4 Giovanni 32 Londra E1 7AE Regno Unito
5 Derek 29 New York 10012 Stati Uniti

Tabella Progetti

ID progetto Nome Giorni lavorativi Città Codice postale Paese
1 Progetto 1 10 Berlino 12109 Germania
2 Progetto 2 7 Mumbai 400015 India
3 Progetto 3 20 Delhi 110006 India
4 Progetto 4 15 Mumbai 400015 India
5 Progetto 5 28 Berlino 12109 Germania

Iniziamo con degli esempi.

Esempi SQL UNION

Esempio operatore UNION

Scrivi una query per recuperare città distinte dalla tabella Dipendenti e Progetti.

SELECT City FROM Employees
UNION
SELECT City FROM Projects
ORDER BY City;

Risultato:

Città

Berlino

Delhi

Londra

Mumbai

New York

Esempio operatore UNION ALL

Scrivi una query per recuperare le città dalla tabella Dipendenti e Progetti. Qui devono essere inclusi valori duplicati.

 
SELECT City FROM Employees
UNION ALL
SELECT City FROM Projects
ORDER BY City; 

Risultato:

Città

Berlino

Berlino

Berlino

Delhi

Londra

Mumbai

Mumbai

Mumbai

New York

New York

In questo articolo, cerchiamo di capire come utilizzare la clausola UNION con gli alias SQL.

UNIONE con alias SQL

Gli alias SQL vengono utilizzati per assegnare un nome temporaneo a una tabella oa una colonna. Quindi, scriviamo una query per elencare tutti i dipendenti e i progetti unici.

SELECT 'Employee' AS Type, Name, City, Country
FROM Employees
UNION
SELECT 'Project', Name, City, Country
FROM Projects;

Risultato:

Tipo Nome Città Paese
Dipendente Emma Berlino Germania
Dipendente Rahul Mumbai India
Dipendente Ayra New York Stati Uniti
Dipendente Giovanni Londra Regno Unito
Dipendente Derek New York Stati Uniti
Progetto Progetto 1 Berlino Germania
Progetto Progetto 2 Mumbai India
Progetto Progetto 3 Delhi India
Progetto Progetto 4 Mumbai India
Progetto Progetto 5 Berlino Germania

UNIONE con clausola WHERE

Scrivi una query per recuperare le città indiane distinte e i relativi codici postali dalla tabella Dipendenti e Progetti.

SELECT City, PostalCode, Country FROM Employees
WHERE Country='India'
UNION
SELECT City, PostalCode, Country FROM Projects
WHERE Country='India'
ORDER BY City;

Risultato:

Città Codice postale Paese
Delhi 110006 India
Mumbai 400015 India

UNION ALL con clausola WHERE

Scrivi una query per recuperare le città indiane e i relativi codici postali dalla tabella Dipendenti e Progetti, dove sono consentiti valori duplicati

SELECT City, PostalCode, Country FROM Employees
WHERE Country='India'
UNION ALL
SELECT City, PostalCode, Country FROM Projects
WHERE Country='India'
ORDER BY City;

Risultato:

Città Codice postale Paese
Delhi 110006 India
Mumbai 400015 India
Mumbai 400015 India
Mumbai 400015 India

Andando avanti in questo articolo, cerchiamo di capire come utilizzare le clausole UNION e UNION ALL con JOINS. I JOINS in SQL sono comandi utilizzati per combinare righe di due o più tabelle, in base a una colonna correlata tra quelle tabelle.

UNIONE con UNISCITI

L'operatore SQL UNION può essere utilizzato con SQL JOINS per recuperare dati da due tabelle diverse. Considererò la tabella seguente insieme alla tabella Impiegati per l'esempio.

Tabella ProjectDetails

PID Giorni lavorativi EmpID Costo per progetto
11 12 4 20000
22 16 3 35000
33 30 1 60000
44 25 3 45000
55 21 1 50000
SELECT  EmpID, Name, CostforProject
   FROM Employees
   LEFT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID
UNION
   SELECT  EmpID, Name, CostforProject
   FROM Employees
   RIGHT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID;

Risultato:

EmpID Nome Costo per progetto
1 Emma 60000
1 Emma 50000
2 Rahul NULL
3 Ayra 35000
3 Ayra 45000
4 Giovanni 20000
5 Derek NULL

UNION ALL con UNISCITI

Scrivi una query per recuperare EmpID, Name e CostforProject dalla tabella Employees e ProjectDetails, dove sono consentiti valori duplicati.

SELECT  EmpID, Name, CostforProject
   FROM Employees
   LEFT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID
UNION ALL
   SELECT  EmpID, Name, CostforProject
   FROM Employees
   RIGHT JOIN ProjectDetails
   ON Employees.EmpID = ProjectDetails.EmpID;

Risultato:

EmpID Nome Costo per progetto
1 Emma 60000
1 Emma 50000
2 Rahul NULL
3 Ayra 35000
3 Ayra 45000
4 Giovanni 20000
5 Derek NULL
4 Giovanni 20000
3 Ayra 35000
1 Emma 60000
3 Ayra 35000
1 Emma 50000

Con questo, arrivo alla fine di questo articolo su SQL UNION. Spero che ti sia piaciuto leggere questo articolo su SQL UNION. Abbiamo visto i diversi modi di utilizzare i comandi UNION e UNION ALL per aiutarti a scrivere query. Se desideri saperne di più su MySQL e conoscere questo database relazionale open source, dai un'occhiata al nostro DBA MySQL Formazione per la certificazione che viene fornito con una formazione dal vivo con istruttore e un'esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in modo approfondito MySQL e a raggiungere la padronanza dell'argomento.

Hai una domanda per noi? Per favore menzionalo nella sezione commenti di "SQL UNION" e ti risponderò.