logo

Різниця між Union і Union All

UNION і UNION ALL є двома найважливішими операторами SQL, які використовуються в базі даних для об’єднання набору результатів із кількох таблиць. Ці оператори дозволяють нам використовувати кілька запитів SELECT, отримувати потрібні результати, а потім об’єднувати їх у кінцевий результат. . У цій статті ми побачимо, чим вони відрізняються один від одного. Перш ніж робити порівняння, ми коротко обговоримо цих операторів.

Що таке оператор Союзу?

Оператор об’єднання в MySQL дозволяє об’єднати два або більше результатів із кількох запитів SELECT в один набір результатів. Він має функцію за замовчуванням видаліть повторювані рядки зі столів. Цей синтаксис оператора завжди використовує назву стовпця в першому операторі SELECT як імена стовпців виводу.

MySQL Союз повинен дотримуватися таких основних правил:

  • Кількість і порядок стовпців має бути однаковим у всіх запитах.
  • Позиція відповідних стовпців кожного запиту на вибірку повинна мати сумісний тип даних.
  • Назва стовпця, вибрана в різних запитах SELECT, має бути в тому самому порядку.
  • Ім’я стовпця першого запиту SELECT буде іменем стовпця результату.

ПРИМІТКА: ми повинні знати, що Union і Join відрізняються.

  1. JOIN поєднує дані з кількох різних таблиць, тоді як UNION поєднує дані з кількох подібних таблиць.
  2. JOIN додає результат горизонтально, тоді як UNION комбінує набір результатів вертикально.

Наведене нижче візуальне представлення пояснює це більш чітко:

Союз проти Союзу всіх

Щоб дізнатися більше про оператора Union, натисніть тут.

Що таке Union All?

Оператор UNION ALL поєднує два або більше результатів із кількох запитів SELECT і повертає всі записи в один набір результатів. Він не видаляє повторювані рядки з виводу операторів SELECT.

Ми можемо зрозуміти це за допомогою наступного візуального представлення.

Союз проти Союзу всіх

Union проти Union All Operator

У наведеній нижче порівняльній таблиці коротко пояснюються їхні основні відмінності:

СОЮЗ СОЮЗ ВСЕ
Він об’єднує набір результатів із кількох таблиць і повертає різні записи в один набір результатів. Він об’єднує набір результатів із кількох таблиць і повертає всі записи в один набір результатів.
Нижче наведено основне синтаксис оператора UNION:
ВИБРАТИ список_стовпців З таблиці1
СОЮЗ
SELECT column_list FROM table2;
Нижче наведено основне синтаксис оператора UNION ALL:
ВИБРАТИ список_стовпців З таблиці1
СОЮЗ ВСЕ
SELECT column_list FROM table2;
Він має функцію за замовчуванням для видалення повторюваних рядків із виводу. Він не має функції видалення повторюваних рядків із виводу.
Його продуктивність повільна тому що для пошуку та видалення повторюваних записів потрібен час. Його продуктивність швидка оскільки це не усуває повторювані рядки.
Більшість користувачів баз даних вважають за краще використовувати цей оператор. Більшість користувачів бази даних не вважають за краще використовувати цей оператор.

Приклад Союзу та Союзу всіх

Розберемо на прикладі відмінності між операторами Union і Union All. Припустімо, у нас є таблиця з назвою ' студент 'і' Студент2 ', що містить такі дані:

Таблиця: Учень

Союз проти Союзу всіх

Таблиця: Студент2

Союз проти Союзу всіх

Наступний оператор SQL повертає чіткі назви міст з обох таблиць за допомогою запиту UNION:

 SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City; 

Після виконання наведеного вище оператора ми отримаємо наведені нижче результати, оскільки оператор Union повертає лише різні значення.

Союз проти Союзу всіх

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

 SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City; 

Після виконання наведеного вище оператора ми отримаємо наведені нижче результати, оскільки оператор Union All повертає цілі записи без видалення окремих значень.

Союз проти Союзу всіх