Verzamelingenleer voor SQL-joins

Data joinen 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.

Data joinen 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.

Data joinen 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.

Data joinen 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.

Data joinen 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;
Data joinen 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.

Data joinen 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.

Data joinen 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             |
Data joinen 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;
Data joinen 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       |
|-------------------------|----------------|
Data joinen 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;
Data joinen 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           |
Data joinen in SQL

Laten we oefenen!

Data joinen in SQL

Preparing Video For Download...