Иллюстрированный самоучитель по SQL для начинающих

Реляционные операторы

Примеры данных, хранящихся в трех указанных таблицах, приведены в табл. 10.4-10.6.

Таблица 10.4. Таблица EMPLOYEE.

EmpID Name (фамилия)
1 Ferguson
2 Frost
3 Toyon

Таблица 10.5. Таблица PROJECTS.

ProjectName (название проекта) EmpID
X-63 Structure (устройство ракеты Х-63) 1
X-64 Structure (устройство ракеты Х-64) 1
X-63 Guidance (система управления Х-63) 2
X-64 Guidance (система управления Х-64) 2
X-63 Telemetry (телеметрия Х-63) 3
X-64 Telemetry (телеметрия X-64) 3

Как видно в этих таблицах, Фергюсон работал над проектами устройства ракет Х-63 и Х-64, а также является специалистом по механическому проектированию и расчетам аэродинамической нагрузки.

Теперь предположим, что вы как менеджер хотите увидеть всю информацию обо всех своих сотрудниках. Для этого вы решили применить к таблицам EMPLOYEE, PROJECTS и SKILLS объединение, основанное на равенстве:

SELECT *
FROM EMPLOYEE E, PROJECTS P, SKILLS S
WHERE E.EmpID = P.EmpID
AND E.EmpID = S.EmpID;

Таблица 10.6. Таблица SKILLS.

Skill (квалификация) EmpID
Mechanical Design (механическое проектирование) 1
Aerodynamic Loading (расчеты аэродинамической нагрузки) 1
Analog Design (проектирование аналоговых устройств) 2
Gyroscope Design (проектирование гироскопов) 2
Digital Design (проектирование цифровых устройств) 3
R/F Design (проектирование РЛС) 3

Эту же операцию можно представить в виде внутреннего объединения, используя для этого следующий синтаксис:

SELECT *
FROM EMPLOYEE E INNER JOIN PROJECTS P
ON (E.EmpID = P.EmpID)
INNER JOIN SKILLS S
ON (E.EmpID = S.EmpID);
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.