Разница между JOIN и UNION в SQL
Содержание
JOIN и UNION - это предложения в SQL, используемые для объединения данных двух или более отношений. Но способ, которым они объединяют данные и формат полученного результата, отличается. ПРИСОЕДИНИТЬСЯ Предложение объединяет атрибуты двух отношений для формирования результирующих кортежей, тогда как, UNION Предложение объединяет результат двух запросов. Давайте обсудим разницу между JOIN и UNION с помощью сравнительной таблицы, показанной ниже.
- Сравнительная таблица
- Определение
- Ключевые отличия
- Заключение
Сравнительная таблица
Основа для сравнения | ПРИСОЕДИНИТЬСЯ | UNION |
---|---|---|
основной | JOIN объединяет атрибуты кортежей, присутствующих в двух разных отношениях, которые имеют общие поля или атрибуты. | UNION объединяет кортежи отношений, которые присутствуют в запросе. |
Условие | JOIN применяется, когда два вовлеченных отношения имеют хотя бы один общий атрибут. | UNION применяется, когда число столбцов, присутствующих в запросе, одинаково и соответствующие атрибуты имеют одинаковый домен. |
Типы | ВНУТРЕННЯЯ, ПОЛНАЯ (НАРУЖНАЯ), ЛЕВАЯ РЕГИСТРАЦИЯ, ПРАВАЯ СОЕДИНЕНИЕ | СОЮЗ и СОЮЗ ВСЕХ. |
эффект | Длина результирующих кортежей больше по сравнению с длиной кортежей вовлеченных отношений. | Количество результирующих кортежей больше по сравнению с количеством кортежей, присутствующих в каждом отношении, участвующем в запросе. |
схема |
|
Определение JOIN
ПРИСОЕДИНИТЬСЯ Предложение в SQL объединяет кортежи из двух отношений или таблиц, что приводит к увеличению размера кортежа. Результирующий кортеж содержит атрибуты из обоих отношений. Атрибуты объединяются на основе общих атрибутов между ними. Различные типы JOIN в SQL ВНУТРЕННЕЕ РЕШЕНИЕ, ЛЕВОЕ СОЕДИНЕНИЕ, ПРАВИЛЬНОЕ СОЕДИНЕНИЕ, ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ.
ВНУТРЕННЕЕ СОЕДИНЕНИЕ объединяет кортежи из обеих таблиц, если между ними есть общий атрибут. ЛЕВОЕ СОЕДИНЕНИЕ приводит ко всем кортежам левой таблицы и соответствующим кортежу из правой таблицы. ПРАВИЛЬНОЕ СОЕДИНЕНИЕ В результате получаются все кортежи из правой таблицы и только совпадающие кортежи из левой таблицы. ПОЛНОЕ НАРУЖНОЕ СОЕДИНЕНИЕ приводит ко всем кортежам из обеих таблиц, хотя они имеют совпадающие атрибуты или нет.
ВНУТРЕННЕЕ СОЕДИНЕНИЕ такое же, как ВМЕСТЕ Вы также можете удалить ключевое слово INNER и просто использовать JOIN для выполнения INNER JOIN.
Определение СОЮЗА
UNION - это операция над множествами в SQL. UNON объединяет результат двух запросов. Результат UNION включает в себя кортежи обоих отношений, присутствующих в запросе. Условия, которые должны быть выполнены для объединения двух отношений:
- Два отношения должны иметь одинаковое количество атрибутов.
- Домены соответствующего атрибута должны быть одинаковыми.
Есть два типа СОЮЗА, которые UNION а также СОЮЗ ВСЕХ, Результат, полученный с помощью UNION, не содержит дубликатов. С другой стороны, результат, полученный с помощью UNION ALL, сохраняет дубликат.
- Основное различие между JOIN и UNION состоит в том, что JOIN объединяет кортежи из двух отношений, а результирующие кортежи включают атрибуты из обоих отношений. С другой стороны, UNION объединяет результат двух запросов SELECT.
- Предложение JOIN применимо только тогда, когда два участвующих отношения имеют хотя бы один общий атрибут в обоих. С другой стороны, UNION применяется, когда два отношения имеют одинаковое количество атрибутов и домены соответствующих атрибутов одинаковы.
- Существует четыре типа РЕАГИРОВАНИЯ ВНУТРЕННЕГО РЕШЕНИЯ, ЛЕВОГО СОЕДИНЕНИЯ, ПРЯМОГО СОЕДИНЕНИЯ, ПОЛНОГО НАРУЖНОГО СОЕДИНЕНИЯ. Но есть два типа UNION, UNION и UNION ALL.
- В JOIN результирующий кортеж имеет больший размер, поскольку включает атрибуты обоих отношений. С другой стороны, в UNION число кортежей увеличивается, в результате чего в них входит кортеж из обоих отношений, присутствующих в запросе.
Заключение:
Обе операции объединения данных используются в разных ситуациях. JOIN используется, когда мы хотим объединить атрибуты двух отношений, имеющих хотя бы один общий атрибут. UNION используется, когда мы хотим объединить кортежи двух отношений, которые присутствуют в запросе.