Соединения. Рассмотрим некоторые виды соединения.
Рассмотрим некоторые виды соединения.
1. Соединение по равенству, обычное или внутреннее соединение
Операция соединения по равенству определяет отношение, которое содержит кортежи из декартова произведения отношения R10 и R11, удовлетворяющие условию сочетаемых столбцов.
Пример: Показать всех сотрудников, их должности и оклады. Исходные данные отображены в таблицах 12 и 13, результат объединения указан в таблице 14.
SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад
FROM Сотрудники, Должности
WHERE Сотрудники.Код должности=Должности.Код должности;
или
SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад
FROM Сотрудники INNER JOIN Должности ON Сотрудники. Код должности = Должности. Код должности;
Таблица 12 - Отношение R10, исходное для операции соединение по равенству (таблица Сотрудники)
R10 – информация о сотрудниках | ||||
Код сотрудника | Фамилия | Имя | Отчество | Код должности |
Иванов | Юрий | Игоревич | ||
Орлов | Егор | Петрович | ||
Юрков | Павел | Антонович | ||
Степанов | Олег | Сергеевич | ||
Петров | Сергей | Олегович | ||
Локтев | Павел | Сергеевич |
Таблица 13 - Отношение R11, исходное для операции соединение по равенству (таблица Должности)
R10 – информация о должностях | ||
Код должности | Название должности | Оклад |
Программист | ||
Администратор | ||
Оператор | ||
Машинист | ||
Стажер |
Таблица 14 - Отношение R11, результат декартова произведения
R11 – информация о сотрудниках и их должностях и окладах | |||||
Код сотрудника | Фамилия | Имя | Отчество | Название должности | Оклад |
Иванов | Юрий | Игоревич | Программист | ||
Орлов | Егор | Петрович | Программист | ||
Юрков | Павел | Антонович | Программист | ||
Степанов | Олег | Сергеевич | Администратор | ||
Петров | Сергей | Олегович | Машинист | ||
Локтев | Павел | Сергеевич | Стажер |
2. Внешнее соединение
Операция внешнее соединение, при котором в результирующее отношение включаются также кортежи отношений, не имеющих совпадающих значений в общих столбцах. Для обозначения отсутствующих значений используется значение NULL. Внешние соединения делятся на полное внешнее соединение (FULL JOIN), левое внешнее соединение (LEFT JOIN) и правое внешнее соединение (RIGHT JOIN).
Пример правого внешнего соединения. Показать всех сотрудников, их должности и оклады. Исходные данные отображены в таблицах 9 и 10, результат объединения указан в таблице 12.
SELECT Сотрудники. Код сотрудника, Сотрудники. Имя, Сотрудники. Фамилия, Сотрудники. Отчество, Должности. Название должности, Должности. Оклад
FROM Сотрудники RIGHT JOIN Должности ON Сотрудники. Код должности = Должности. Код должности;
Дата добавления: 2015-01-19; просмотров: 803;