Mängdlära för SQL-joins

Att joina data i SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Venn-diagram och mängdlära

En figur med tre Venn-diagram: UNION, INTERSECT och EXCEPT. UNION-diagrammet har två överlappande cirklar, helt ifyllda i grönt. INTERSECT-diagrammet har två överlappande cirklar där bara den överlappande delen är grön. EXCEPT-diagrammet visar bara den del av den vänstra cirkeln som inte överlappar med den högra, ifylld i grönt.

Att joina data i SQL

Venn-diagram och mängdlära

En bild med tre Venn-diagram där två är tonade. Endast UNION-diagrammet är i fokus. UNION-diagrammet har två överlappande cirklar, helt ifyllda i grönt.

Att joina data i SQL

UNION-diagram

  • UNION tar två tabeller som indata och returnerar alla poster från båda tabellerna

Ett diagram med en vänster och en höger tabell. Till höger visas resultatet av en UNION-operation på de två tabellerna.

Att joina data i SQL

UNION ALL-diagram

  • UNION ALL tar två tabeller och returnerar alla poster från båda, inklusive dubbletter

Ett diagram med en vänster och en höger tabell. Till höger visas resultatet av en UNION ALL-operation på de två tabellerna.

Att joina data i SQL

Syntax för UNION och UNION ALL

UNION-syntax

SELECT *
FROM left_table
UNION
SELECT *
FROM right_table;

UNION ALL-syntax

SELECT *
FROM left_table
UNION ALL
SELECT *
FROM right_table;
Att joina data i SQL

Syntax för UNION och UNION ALL

Ett diagram med en vänster och en höger tabell. Till höger visas resultatet av en UNION-operation. Pilar markerar att den vänstra och högra tabellen måste ha samma antal kolumner med samma fälttyper.

Att joina data i SQL

Syntax för UNION och UNION ALL

Ett diagram med en vänster och en höger tabell. Till höger visas resultatet av en UNION-operation. Pilar markerar att tabellerna måste ha samma antal kolumner med samma fälttyper. Resultatet visar att fältnamnet behålls från den vänstra tabellen, även om det är aliaserat.

Att joina data i SQL

Tabellen 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             |
Att joina data i SQL

Premiärministrar möter monarker

SELECT monarch AS leader, country
FROM monarchs
UNION
SELECT prime_minister, country
FROM prime_ministers
ORDER BY country, leader
LIMIT 10;
Att joina data i SQL

Efter 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       |
|-------------------------|----------------|
Att joina data i SQL

UNION ALL med ledarna

SELECT monarch AS leader, country
FROM monarchs
UNION ALL
SELECT prime_minister, country
FROM prime_ministers
ORDER BY leader, country
LIMIT 10;
Att joina data i SQL

Resultat av 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           |
Att joina data i SQL

Nu kör vi en övning!

Att joina data i SQL

Preparing Video For Download...