Теорія множин для об'єднань у SQL

Об'єднання даних у SQL

Maham Faisal Khan

Senior Content Developer, DataCamp

Діаграми Венна й теорія множин

Зображення з трьома діаграмами Венна: UNION, INTERSECT і EXCEPT. На діаграмі UNION два кола перекриваються й повністю зафарбовані зеленим. На діаграмі INTERSECT зафарбована лише спільна частина двох кіл. На діаграмі EXCEPT зеленим позначена лише частина лівого кола, яка не перетинається з правим.

Об'єднання даних у SQL

Діаграми Венна й теорія множин

Зображення з трьома діаграмами Венна, дві з яких затінені. У фокусі лише діаграма UNION. На ній два кола перекриваються й повністю зафарбовані зеленим.

Об'єднання даних у SQL

Діаграма UNION

  • UNION бере дві таблиці й повертає всі записи з обох

Схема з двома таблицями, лівою та правою. Праворуч показано, що відбувається під час операції UNION над цими таблицями.

Об'єднання даних у SQL

Діаграма UNION ALL

  • UNION ALL бере дві таблиці й повертає всі записи з обох, включно з дублікатами

Схема з двома таблицями, лівою та правою. Праворуч показано, що відбувається під час операції UNION ALL над цими таблицями.

Об'єднання даних у SQL

Синтаксис UNION і UNION ALL

Синтаксис UNION

SELECT *
FROM left_table
UNION
SELECT *
FROM right_table;

Синтаксис UNION ALL

SELECT *
FROM left_table
UNION ALL
SELECT *
FROM right_table;
Об'єднання даних у SQL

Синтаксис UNION і UNION ALL

Схема з двома таблицями, лівою та правою. Праворуч показано, що відбувається під час операції UNION над цими таблицями. Стрілки вказують, що ліва й права таблиці мають мати однакову кількість стовпців і ті самі типи полів.

Об'єднання даних у SQL

Синтаксис UNION і UNION ALL

Схема з двома таблицями, лівою та правою. Праворуч показано, що відбувається під час операції UNION над цими таблицями. Стрілки вказують, що ліва й права таблиці мають мати однакову кількість стовпців і ті самі типи полів. Праворуч показано набір результатів, де збережено назву поля з правої таблиці, навіть якщо воно має псевдонім.

Об'єднання даних у SQL

До таблиці 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             |
Об'єднання даних у SQL

Прем'єр-міністри, знайомтесь із монархами

SELECT monarch AS leader, country
FROM monarchs
UNION
SELECT prime_minister, country
FROM prime_ministers
ORDER BY country, leader
LIMIT 10;
Об'єднання даних у SQL

Після 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       |
|-------------------------|----------------|
Об'єднання даних у SQL

UNION ALL із лідерами

SELECT monarch AS leader, country
FROM monarchs
UNION ALL
SELECT prime_minister, country
FROM prime_ministers
ORDER BY leader, country
LIMIT 10;
Об'єднання даних у SQL

Результат 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           |
Об'єднання даних у SQL

Давайте потренуємось!

Об'єднання даних у SQL

Preparing Video For Download...