БД_л6_Join

Содержание

Слайд 2

Оператор соединения

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

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

Слайд 3

Варианты синтаксиса соединения

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

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

Слайд 4

Пример

Employee
empid
name
firstname
dep_no

Department
dep_no
department

Пример Employee empid name firstname dep_no Department dep_no department

Слайд 5

Пример

Пример

Слайд 6

Пример

Пример

Слайд 7

Явный синтаксис

SELECT
name,
firstname,
department
FROM employee
INNER JOIN department ON employee.dep_no = department.dep_no;

Явный синтаксис 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.
[OUTER] JOIN.

Слайд 9

Неявный синтаксис

SELECT
name,
firstname,
department
FROM employee, department
WHERE
employee.dep_no = department.dep_no;

Неявный синтаксис SELECT name, firstname, department FROM employee, department WHERE employee.dep_no = department.dep_no;

Слайд 10

Соединение таблиц

Соединение таблиц

Слайд 11

Соединение таблиц

Соединение таблиц

Слайд 12

Соединение таблиц

Соединение таблиц

Слайд 13

Соединение таблиц

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

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

Слайд 14

Соединение более чем двух таблиц

Ограничение - 64 таблицы
SELECT name, firstname
FROM works_on
JOIN

Соединение более чем двух таблиц Ограничение - 64 таблицы SELECT name, firstname
employee ON works_on.empid=employee.empid
JOIN department ON employee.dep_no=department.dep_no

Слайд 15

Виды соединений

Естественное соединение
Декартово произведение (перекрестное соединение)
Внешнее соединение
Тета-соединение, самосоединение и полусоединение

Виды соединений Естественное соединение Декартово произведение (перекрестное соединение) Внешнее соединение Тета-соединение, самосоединение и полусоединение

Слайд 16

Естественное соединение

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

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

Слайд 17

Естественное соединение

Естественное соединение

Слайд 19

Естественное соединение

Естественное соединение

Слайд 20

Декартово произведение

Ортогональное соединение, перекрестное соединение
CROSS JOIN
Декартово произведение соединяет каждую строку первой

Декартово произведение Ортогональное соединение, перекрестное соединение CROSS JOIN Декартово произведение соединяет каждую
таблицы с каждой строкой второй таблицы
Количество строк n × m

Слайд 21

Декартово произведение

Декартово произведение

Слайд 22

Декартово произведение

Декартово произведение

Слайд 23

Внешнее соединение

При внешнем соединении результирующий набор содержит все строки одной таблицы и

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

Слайд 24

LEFT OUTER JOIN

LEFT OUTER JOIN

Слайд 25

LEFT OUTER JOIN

LEFT OUTER JOIN

Слайд 26

RIGHT OUTER JOIN

RIGHT OUTER JOIN

Слайд 27

RIGHT OUTER JOIN

RIGHT OUTER JOIN

Слайд 28

RIGHT OUTER JOIN

RIGHT OUTER JOIN

Слайд 29

FULL OUTER JOIN

FULL OUTER JOIN

Слайд 30

FULL OUTER JOIN

FULL OUTER JOIN

Слайд 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;

Слайд 34

Самосоединение

Иерархия

Самосоединение Иерархия

Слайд 35

Самосоединение

Самосоединение

Слайд 36

Полусоединение

Полусоединение возвращает набор всех строк из одной таблицы, для которой в другой

Полусоединение Полусоединение возвращает набор всех строк из одной таблицы, для которой в
таблице есть одно или несколько совпадений
SELECT empid, name, e.dep_no
FROM employee e JOIN department d
ON e.dep_no = d.dep_no

Слайд 37

Операция соединения

Коммутативность операций соединения?

Операция соединения Коммутативность операций соединения?