Teoria degli insiemi per le JOIN in SQL

Unire i dati in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Diagrammi di Venn e teoria degli insiemi

Una figura con tre diagrammi di Venn: UNION, INTERSECT ed EXCEPT. In UNION i due cerchi sovrapposti sono completamente verdi. In INTERSECT è verde solo la parte sovrapposta. In EXCEPT è verde solo la parte del cerchio sinistro senza l’intersezione.

Unire i dati in SQL

Diagrammi di Venn e teoria degli insiemi

Un’immagine con tre diagrammi di Venn, due sfocati. Solo il diagramma UNION è a fuoco. I due cerchi sovrapposti sono completamente verdi.

Unire i dati in SQL

Diagramma di UNION

  • UNION prende due tabelle in input e restituisce tutti i record di entrambe

Un diagramma con due tabelle, sinistra e destra. A destra è mostrato l’effetto di un’operazione UNION sulle due tabelle.

Unire i dati in SQL

Diagramma di UNION ALL

  • UNION ALL prende due tabelle e restituisce tutti i record di entrambe, inclusi i duplicati

Un diagramma con due tabelle, sinistra e destra. A destra è mostrato l’effetto di un’operazione UNION ALL sulle due tabelle.

Unire i dati in SQL

Sintassi di UNION e UNION ALL

Sintassi di UNION

SELECT *
FROM left_table
UNION
SELECT *
FROM right_table;

Sintassi di UNION ALL

SELECT *
FROM left_table
UNION ALL
SELECT *
FROM right_table;
Unire i dati in SQL

Sintassi di UNION e UNION ALL

Un diagramma con due tabelle, sinistra e destra. A destra è mostrato l’effetto di un’operazione UNION sulle due tabelle. Frecce indicano che le tabelle devono avere lo stesso numero di colonne con gli stessi tipi.

Unire i dati in SQL

Sintassi di UNION e UNION ALL

Un diagramma con due tabelle, sinistra e destra. A destra è mostrato l’effetto di un’operazione UNION sulle due tabelle. Frecce indicano che le tabelle devono avere lo stesso numero di colonne con gli stessi tipi. A destra è mostrato il result set, evidenziando che il nome del campo è mantenuto dalla tabella di destra, anche se con alias.

Unire i dati in SQL

Sulla tabella monarchs

SELECT *
FROM monarchs;
| country        | continent   | monarch                 |
|----------------|-------------|-------------------------|
| Brunei         | Asia        | Hassanal Bolkiah        |
| Oman           | Asia        | Haitham bin Tarik       |
| Norway         | Europe      | Harald V                |
| United Kingdom | Europe      | Charles III             |
Unire i dati in SQL

Primi ministri, incontrate i monarchi

SELECT monarch AS leader, country
FROM monarchs
UNION
SELECT prime_minister, country
FROM prime_ministers
ORDER BY country, leader
LIMIT 10;
Unire i dati in SQL

Dopo la UNION

|-------------------------|----------------|
| leader                  | country        |
|-------------------------|----------------|
| Anthony Albanese        | Australia      |
| Hassanal Bolkiah        | Brunei         |
| Mostafa Madbouly        | Egypt          |
| Narendra Modi           | India          |
| Christopher Luxon       | New Zealand    |
| Harald V                | Norway         |
| Jonas Gahr Støre        | Norway         |
| Haitham bin Tarik       | Oman           |
| Shehbaz Sharif          | Pakistan       |
| Luís Montenegro         | Portugal       |
|-------------------------|----------------|
Unire i dati in SQL

UNION ALL con i leader

SELECT monarch AS leader, country
FROM monarchs
UNION ALL
SELECT prime_minister, country
FROM prime_ministers
ORDER BY leader, country
LIMIT 10;
Unire i dati in SQL

Risultato di UNION ALL

| leader                  | country        |
|-------------------------|----------------|
| Anthony Albanese        | Australia      |
| Hassanal Bolkiah        | Brunei         |
| Hassanal Bolkiah        | Brunei         |
| Mostafa Madbouly        | Egypt          |
| Narendra Modi           | India          |
| Christopher Luxon       | New Zealand    |
| Harald V                | Norway         |
| Jonas Gahr Støre        | Norway         |
| Haitham bin Tarik       | Oman           |
| Haitham bin Tarik       | Oman           |
Unire i dati in SQL

Ayo berlatih!

Unire i dati in SQL

Preparing Video For Download...