Verzamelingenleer voor SQL-joins

Gegevens samenvoegen in SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Venn-diagrammen en verzamelingenleer

Een afbeelding met drie Venn-diagrammen: UNION, INTERSECT en EXCEPT. Het diagram UNION heeft twee cirkels die elkaar overlappen en helemaal groen zijn. De diagrammen van INTERSECT hebben twee cirkels die elkaar overlappen, maar alleen het gedeelte dat overlapt, is groen gekleurd. Het diagram EXCEPT laat alleen het deel van de linker cirkel zien dat niets gemeen heeft met de rechter cirkel, en dat deel is groen gekleurd.

Gegevens samenvoegen in SQL

Venn-diagrammen en verzamelingenleer

Een afbeelding met drie Venn-diagrammen, waarvan er twee zijn vervaagd. Alleen het diagram met UNION is scherp. Het diagram UNION heeft twee overlappende cirkels die helemaal groen zijn.

Gegevens samenvoegen in SQL

UNION-diagram

  • UNION neemt twee tabellen als input en geeft alle records uit beide tabellen weer

Een diagram met twee tabellen, links en rechts. Aan de rechterkant van het diagram zie je wat er gebeurt als je een UNION-bewerking uitvoert op de twee tabellen.

Gegevens samenvoegen in SQL

UNION ALL-diagram

  • UNION ALL neemt twee tabellen en geeft alle records uit beide tabellen weer, inclusief dubbele records

Een diagram met twee tabellen, links en rechts. Aan de rechterkant van het diagram zie je wat er gebeurt als je een UNION ALL-bewerking uitvoert op de twee tabellen.

Gegevens samenvoegen in SQL

UNION- en UNION ALL-syntaxis

UNION-syntaxis

SELECT *
FROM left_table
UNION
SELECT *
FROM right_table;

UNION ALL-syntaxis

SELECT *
FROM left_table
UNION ALL
SELECT *
FROM right_table;
Gegevens samenvoegen in SQL

UNION- en UNION ALL-syntaxis

Een diagram met twee tabellen, links en rechts. Aan de rechterkant van het diagram zie je wat er gebeurt als je een UNION-bewerking uitvoert op de twee tabellen. Pijlen geven aan dat de linker- en rechtertabel hetzelfde aantal kolommen met dezelfde veldtypen moeten hebben.

Gegevens samenvoegen in SQL

UNION- en UNION ALL-syntaxis

Een diagram met twee tabellen, links en rechts. Aan de rechterkant van het diagram zie je wat er gebeurt als je een UNION-bewerking uitvoert op de twee tabellen. Pijlen geven aan dat de linker- en rechtertabel hetzelfde aantal kolommen met dezelfde veldtypen moeten hebben. Aan de rechterkant zie je de resultaten, waarbij je kunt zien dat de veldnaam uit de rechtertabel behouden blijft, zelfs als er een alias is gebruikt.

Gegevens samenvoegen in SQL

Naar de koninklijke tabel

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

Premiers ontmoeten de koning(inn)en

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

Na de 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       |
|-------------------------|----------------|
Gegevens samenvoegen in SQL

UNION ALL met de leiders

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

UNION ALL-resultaat

| 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           |
Gegevens samenvoegen in SQL

Laten we oefenen!

Gegevens samenvoegen in SQL

Preparing Video For Download...