Teoria mulțimilor pentru JOIN-uri SQL

Joining Data in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Diagrame Venn și teoria mulțimilor

Figură cu trei diagrame Venn: UNION, INTERSECT și EXCEPT. Diagrama UNION are două cercuri suprapuse, complet colorate în verde. Diagrama INTERSECT are două cercuri suprapuse, dar doar zona comună este colorată în verde. Diagrama EXCEPT colorează în verde doar partea cercului stâng fără corespondent în cel drept.

Joining Data in SQL

Diagrame Venn și teoria mulțimilor

Imagine cu trei diagrame Venn, dintre care două sunt estompate. Doar diagrama UNION este în prim-plan: două cercuri suprapuse, complet colorate în verde.

Joining Data in SQL

Diagrama UNION

  • UNION preia două tabele și returnează toate înregistrările din ambele

Diagramă cu două tabele, stânga și dreapta. În dreapta, este ilustrat rezultatul operației UNION.

Joining Data in SQL

Diagrama UNION ALL

  • UNION ALL preia două tabele și returnează toate înregistrările din ambele, inclusiv duplicatele

Diagramă cu două tabele, stânga și dreapta. În dreapta, este ilustrat rezultatul operației UNION ALL.

Joining Data in SQL

Sintaxa UNION și UNION ALL

Sintaxa UNION

SELECT *
FROM left_table
UNION
SELECT *
FROM right_table;

Sintaxa UNION ALL

SELECT *
FROM left_table
UNION ALL
SELECT *
FROM right_table;
Joining Data in SQL

Sintaxa UNION și UNION ALL

Diagramă cu două tabele, stânga și dreapta. În dreapta, este ilustrat rezultatul operației UNION. Săgețile indică faptul că cele două tabele trebuie să aibă același număr de coloane cu aceleași tipuri de câmpuri.

Joining Data in SQL

Sintaxa UNION și UNION ALL

Diagramă cu două tabele, stânga și dreapta. În dreapta, este ilustrat rezultatul operației UNION. Săgețile indică că cele două tabele trebuie să aibă același număr de coloane cu aceleași tipuri de câmpuri. Rezultatul arată că numele câmpului este preluat din tabelul drept, chiar dacă a fost aliasizat.

Joining Data in SQL

Tabelul 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             |
Joining Data in SQL

Prim-miniștri și monarhi

SELECT monarch AS leader, country
FROM monarchs
UNION
SELECT prime_minister, country
FROM prime_ministers
ORDER BY country, leader
LIMIT 10;
Joining Data in SQL

Rezultatul 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       |
|-------------------------|----------------|
Joining Data in SQL

UNION ALL cu liderii

SELECT monarch AS leader, country
FROM monarchs
UNION ALL
SELECT prime_minister, country
FROM prime_ministers
ORDER BY leader, country
LIMIT 10;
Joining Data in SQL

Rezultatul 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           |
Joining Data in SQL

Să exersăm!

Joining Data in SQL

Preparing Video For Download...