Соединение - это процесс, когда две или более таблицы объединяются в одну. Способность объединять информацию из нескольких таблиц или запросов в виде одного логического набора данных обусловливает широкие возможности SQL.
В языке SQL для задания типа соединения таблиц в логический набор записей, из которого будет выбираться необходимая информация, используется операция JOIN в предложении FROM.
- тета-соединение (θ);
- соединение по эквивалентности (эквисоединение);
- внутреннее или естественное соединение;
- внешнее соединение.
1. Тета-соединение определяет отношение, которое содержит кортежи из декартова произведения отношений R и S, удовлетворяющие предикату F. Предикат F имеет вид , где вместо θ может быть указан один из операторов сравнения ( >, >=, <, <=, =, <> ).
Пр.
2. Если предикат F содержит только оператор равенства ( = ), то соединение называется соединением по эквивалентности.
Пр.
3. Естественным соединением называется соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам, из результатов которого исключается по одному экземпляру каждого общего атрибута.
A JOIN B
Пр.
Такое соединение эквивалентно следующей последовательности операций:
1) Переименовываются одинаковые атрибуты в отношениях;
2)Выполняется декартово произведение отношение;
3) Выполняется выборка по совпадающим значениям атрибутов, имевших одинаковые №;
4) Выполняетя проекция, удаляются повторяющиеся значения;
5) Переименовываются атрибуты.
4. Внешнее соединение
Различают 3 вида внешнего соединения: левое, правое и полное.
а) Левое внешнее соединение отличается от внутреннего тем, что в результирующем отношении добавляются все кортежи из отношения А (левой таблицы), при этом, отсутствующие значения полей из отношения B (правой таблицы) будут заполняться NULL значениями.
A LEFT JOIN B
Пр.
б) Правое внешнее соединение выполняется аналогично левому, но в результирующее отношение добавляются все кортежи из отношения B (правой таблицы).
A RIGHT JOIN B
Пр.
в) При выполнении полного внешнего соединения в результирующее отношение помещаются все кортежи из обоих отношений, неизвестные значения заполняются NULL значениями.
A FULL JOIN B
Пр.