Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Контрольные для управления данными / для типографии методическое пособие по БД.doc
Скачиваний:
97
Добавлен:
20.02.2016
Размер:
670.72 Кб
Скачать
    1. 6.3 Соединения

Рассмотрим некоторые виды соединения.

1. Соединение по равенству, обычное или внутреннее соединение

Операция соединения по равенству определяет отношение, которое содержит кортежи из декартова произведения отношения R10 и R11, удовлетворяющие условию сочетаемых столбцов.

Пример: Показать всех сотрудников, их должности и оклады. Исходные данные отображены в таблицах 12 и 13, результат объединения указан в таблице 14.

SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад

FROM Сотрудники, Должности

WHERE Сотрудники.Код должности=Должности.Код должности;

или

SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад

FROM Сотрудники INNER JOIN Должности ON Сотрудники. Код должности = Должности. Код должности;

Таблица 12 - Отношение R10, исходное для операции соединение по равенству (таблица Сотрудники)

R10 – информация о сотрудниках

Код сотрудника

Фамилия

Имя

Отчество

Код должности

001

Иванов

Юрий

Игоревич

258

002

Орлов

Егор

Петрович

258

003

Юрков

Павел

Антонович

258

004

Степанов

Олег

Сергеевич

369

005

Петров

Сергей

Олегович

147

006

Локтев

Павел

Сергеевич

123

Таблица 13 - Отношение R11, исходное для операции соединение по равенству (таблица Должности)

R10 – информация о должностях

Код должности

Название должности

Оклад

258

Программист

10000

369

Администратор

20000

147

Оператор

5000

123

Машинист

8000

456

Стажер

2000

Таблица 14 - Отношение R11, результат декартова произведения

R11 – информация о сотрудниках и их должностях и окладах

Код сотрудника

Фамилия

Имя

Отчество

Название должности

Оклад

001

Иванов

Юрий

Игоревич

Программист

10000

002

Орлов

Егор

Петрович

Программист

10000

003

Юрков

Павел

Антонович

Программист

10000

004

Степанов

Олег

Сергеевич

Администратор

20000

005

Петров

Сергей

Олегович

Машинист

8000

006

Локтев

Павел

Сергеевич

Стажер

2000

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

Операция внешнее соединение, при котором в результирующее отношение включаются также кортежи отношений, не имеющих совпадающих значений в общих столбцах. Для обозначения отсутствующих значений используется значение NULL. Внешние соединения делятся на полное внешнее соединение (FULL JOIN), левое внешнее соединение (LEFT JOIN) и правое внешнее соединение (RIGHT JOIN).

Пример правого внешнего соединения. Показать всех сотрудников, их должности и оклады. Исходные данные отображены в таблицах 9 и 10, результат объединения указан в таблице 12.

SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад

FROM Сотрудники RIGHT JOIN Должности ON Сотрудники. Код должности = Должности. Код должности;