Різниця між JOIN та UNION у SQL

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 5 Травень 2024
Anonim
sql уроки для начинающих  Join Джоины + пример
Відеоролик: sql уроки для начинающих Join Джоины + пример

Зміст


JOIN та UNION - це пункти SQL, які використовуються для об'єднання даних двох або більше відносин. Але спосіб їх поєднання даних та формат отриманого результату відрізняється. The ПРИЄДНАЙТЕСЬ пункт поєднує атрибути двох відносин, щоб утворити результуючі кортежі, тоді як, СОЮЗ пункт поєднує в собі результат двох запитів. Давайте обговоримо різницю між JOIN та UNION за допомогою порівняльної таблиці, показаної нижче.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняПРИЄДНАЙТЕСЬСОЮЗ
ОсновніПРИЄДНАЙТЕСЬ поєднує атрибути кортежів, присутніх у двох різних відносинах, які поділяють деякі загальні поля чи атрибути.UNION поєднує кортежі відносин, які є у запиті.
УмоваПРИЄДНАЙТЕСЬ застосовується, коли у двох стосунків є принаймні один спільний атрибут.UNION застосований, коли кількість стовпців, які присутні в запиті, однакові і відповідні атрибути мають однаковий домен.
ТипиВНУТРІШНЯ, ПОВНА (зовнішня), ліва приєднайтесь, ПРАВО ПРИЄДНАЙТЕСЬ.Союз та Союз ВСЕ.
ЕфектДовжина отриманих кортежів більша порівняно з довжиною кортежів пов'язаних відносин.Кількість результуючих кортежів більше порівняно з кількістю кортежів, присутніх у кожному відношенні, що бере участь у запиті.
Діаграма



Визначення приєднання

ПРИЄДНАЙТЕСЬ пункт SQL поєднує кортежі з двох співвідношень або таблиць, що призводить до більшого розміру кортежу. Отриманий кортеж містить атрибути обох відношень. Атрибути поєднуються на основі загальних атрибутів між ними. Різні типи JOIN в SQL є ВНУТРІШНЯ ПРИЄДНАЙТЕСЬ, ЛІВНЕ ПРИЄДНАЙТЕСЬ, ПРАВО ПРИЄДНАЙТЕСЬ, ПОЛУЧАЙШЕ ПРИЄДНАЙТЕСЬ.

ВНУТРІШНЄ З'ЄДНАННЯ поєднує кортежі з обох таблиць до тих пір, поки між ними є спільний атрибут. ЛІВО ПРИЄДНАЙТЕСЬ приводить всі кортежі лівої таблиці та збіг кортежу з правої таблиці. ПРАВА ПРИЄДНАЙТЕСЬ приводить всі кортежі з правої таблиці та лише відповідні кортежі з лівої таблиці. ПОВНОГО ПРИЄДНАЙТЕСЬ приводить до всіх кортенів з обох таблиць, хоча вони мають відповідні атрибути чи ні.


ВНУТРІШНЯ ПРИЄДНАННЯ - це те саме, що ПРИЄДНАЙТЕСЬ Ви також можете скинути ключове слово INNER і просто скористатися ПРИЄДНАЙТЕ, щоб виконати INNER JOIN.

Визначення Спілки

UNION - це набір операцій у SQL. UNON поєднує результат двох запитів. Результат UNION включає кортежі обох відносин, наявних у запиті. Умови, які повинні бути виконані, приймають СОЮЗ двох відносин:

  1. Дві відносини повинні мати однакову кількість атрибутів.
  2. Домени відповідного атрибута повинні бути однаковими.

Є два типи Спілки, які є СОЮЗ і СОЮЗ ВСІХ. Результат, отриманий за допомогою UNION, не включає дублікатів. З іншого боку, результат, отриманий за допомогою UNION ALL, зберігає дублікат.

  1. Основна відмінність JOIN від UNION полягає в тому, що JOIN поєднує кортежі з двох відносин, а результуючі кортежі включають атрибути обох відносин. З іншого боку, UNION поєднує в собі результат двох SELECT запитів.
  2. Стаття JOIN застосовується лише тоді, коли два взаємозв'язки мають принаймні один атрибут, спільний для обох. З іншого боку, UNION застосовний тоді, коли обидві відносини мають однакову кількість атрибутів і області відповідних атрибутів однакові.
  3. Існує чотири типи ПРИЄДНУЙТЕСЯ ДО ВНУТРІШНЬОГО ПРИЄДНАННЯ, ПРИЄДНАЙТЕСЬ ЛІВО, ПРАВО ПРИЄДНАЙТЕСЬ, ПОЛНО ВИХОДЖУЙТЕ ПРИЄДНАЙТЕСЬ. Але є два типи UNION, UNION та UNION ALL.
  4. У JOIN результуючий кортеж має більший розмір, оскільки включає атрибути обох відношень. З іншого боку, в UNION кількість кортежів збільшується, як результат, включають кортеж із обох відносин, наявних у запиті.

Висновок:

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