Соединение отношений в запросе.


Запросы могут выполняться над отношениями, соединёнными с помощью оператора JOIN. Различают следующие типы соединений:

  • декартово произведение CROSS JOIN  —   отн1 cross join отн2,
  • соединение по условию JOIN ON — отн1 join on отн2 <условие>

Например,

select atr2,art10 From отн1 join отн2 on atr2 = atr10 where atr1>10,

где atr1 и atr2 – атрибуты отношения ОТН1, atr10 – атрибут отношения отн2

  • Естественное соединение NATURAL JOIN (в Transact SQL, используемом MS SQL SERVER, INNER JOIN). —  отн1 natural join отн2

При естественном соединении кортежам исходного отношения соединяются по условию равенства одноимённых атрибутов. В результирующие отношение попадает только один атрибут.

  • Внешнее соединение  OUTER JOIN. —  отн1 natural full OUTER join отн2

Внешнее соединение отличается от естественного соединения тем, что в естественное соединение включают и те кортежи, для которых не находится пары. При этом отсутствующие атрибуты принимают значение NULL.

Существуют разновидности внешнего соединения:

Полное внешние соединение full OUTER JOIN (см. выше)

Левое внешние соединение LEFT OUTER JOIN

Правое внешние соединение RIGHT OUTER JOIN

В левое внешние соединение попадают кортежи, определяемые левым отношением. Отсутствующие кортежи правого отношения дополняются значениями NULL. В правое – наоборот.Общий формат соединенных отношений может выглядеть следующим образом

[NATURAL|{{LEFT|RIGHT|FULL}[OUTER]}] JOIN on <условие соединения>

Ссылка на основную публикацию
Adblock
detector