Слайд 2Оператор соединения
JOIN - позволяет извлекать данные более чем из одной таблицы

Слайд 3Варианты синтаксиса соединения
явный синтаксис соединения (ANSI SQL:1992)
неявный синтаксис соединения (старого стиля)

Слайд 4Пример
Employee
empid
name
firstname
dep_no
Department
dep_no
department

Слайд 7Явный синтаксис
SELECT
name,
firstname,
department
FROM employee
INNER JOIN department ON employee.dep_no = department.dep_no;

Слайд 8Явный синтаксис
CROSS JOIN;
[INNER] JOIN;
LEFT [OUTER] JOIN;
RIGHT [OUTER] JOIN;
FULL
![Явный синтаксис CROSS JOIN; [INNER] JOIN; LEFT [OUTER] JOIN; RIGHT [OUTER] JOIN; FULL [OUTER] JOIN.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/1182866/slide-7.jpg)
[OUTER] JOIN.
Слайд 9Неявный синтаксис
SELECT
name,
firstname,
department
FROM employee, department
WHERE
employee.dep_no = department.dep_no;

Слайд 13Соединение таблиц
Соединяется каждый с каждым
Остаются только совпадающие
Реализуются разными стратегиями
Неявный синтаксис устарел

Слайд 14Соединение более чем двух таблиц
Ограничение - 64 таблицы
SELECT name, firstname
FROM works_on
JOIN

employee ON works_on.empid=employee.empid
JOIN department ON employee.dep_no=department.dep_no
Слайд 15Виды соединений
Естественное соединение
Декартово произведение (перекрестное соединение)
Внешнее соединение
Тета-соединение, самосоединение и полусоединение

Слайд 16Естественное соединение
Внутреннее соединение содержит только те строки одной таблицы, для которых имеются

соответствующие строки в другой таблице
Соединяемые таблицы
Условие соединения
Столбцы соединения
Слайд 20Декартово произведение
Ортогональное соединение, перекрестное соединение
CROSS JOIN
Декартово произведение соединяет каждую строку первой

таблицы с каждой строкой второй таблицы
Количество строк n × m
Слайд 23Внешнее соединение
При внешнем соединении результирующий набор содержит все строки одной таблицы и

те из второй таблицы, для которых имеются соответствующие строки в первой таблице.
Слайд 31Виды соединений
Тета-соединение
Самосоединение
Полусоединение

Слайд 32Тета-соединение
Соединение, в котором используется общее условие сравнения столбцов соединения, называется тета-соединением
SELECT name,

firstname, user_location, dept_location
FROM employee JOIN department
ON user_location < dept_location;
Слайд 33Самосоединение
При самосоединении таблица соединяется сама с собой, столбец таблицы сравнивается сам с

собой
SELECT t1.dep_no, t1.dep_name, t1.location
FROM department t1 JOIN department t2
ON t1.location = t2.location
WHERE t1.dep_no <> t2.dep_no;
Слайд 36Полусоединение
Полусоединение возвращает набор всех строк из одной таблицы, для которой в другой

таблице есть одно или несколько совпадений
SELECT empid, name, e.dep_no
FROM employee e JOIN department d
ON e.dep_no = d.dep_no
Слайд 37Операция соединения
Коммутативность операций соединения?
