Помощь в учёбе, очень быстро...
Работаем вместе до победы

Внешнее соединение. 
Организация баз данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Решение этой проблемы состоит в использовании внешнего соединения. Внешнее соединение учитывает в присоединенной таблице наличие пустого значения. В следующем примере иллюстрируется синтаксис запроса внешнего соединения: Наличие знака плюс (+)указывает, что в запрос должна быть вклю чена строка с пустым значением. При изменении позиции внешне го соединения результаты выполнения предыдущего… Читать ещё >

Внешнее соединение. Организация баз данных (реферат, курсовая, диплом, контрольная)

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

Однако в некоторых случаях может возникнуть необходимость выбрать строки, которые не имеют такого соответствия в присоединенной таблице. Например, предположим, что нужно выбрать всех служащих и соответствующие им названия отделов из таблицы ЕМР. Пока каждому служащему соответствует определенный отдел, работает простое соединение.

В рассматриваемом примере (в целях демонстрации работы запроса) президент компании не имеет названия отдела и простое соединение между таблицами оставляет его за пределами выходного списка.

Решение этой проблемы состоит в использовании внешнего соединения. Внешнее соединение учитывает в присоединенной таблице наличие пустого значения. В следующем примере иллюстрируется синтаксис запроса внешнего соединения:

select d. dept_name, е. emp_last_name from emp e, dept d where e. dept_no = d. dept_no (+) order by d. dept_name, e. emp_last_name;

DEPT NAME EMP LAST NAME.

ACCOUNTING SAGE.

BROADCAST OPERATIONS GIAROINA BROADCAST OPERATIONS PALESKI BROADCAST OPERATIONS TERRY OPERATIONS CONSULTING BEECHER SERVICES CONSULTING CANNELL.

SERVICES CONSULTING LUNDY.

SERVICES CONSULTING MITTLER.

SERVICES CONSULTING NEUMANN.

SERVICES HOSPITAL BRUNNER.

SERVICES HOSPITAL CALLAHAN.

SERVICES HOSPITAL DUELL.

SERVICES HOSPITAL HEIMER.

SERVICES PERSONNEL RACCIO.

SALES ANNUNZIATO.

SALES FARRELL.

SALES MATTEO.

SALES SIM.

RUSSO.

ZAFIAN.

Наличие знака плюс (+)указывает, что в запрос должна быть вклю чена строка с пустым значением. При изменении позиции внешне го соединения результаты выполнения предыдущего запроса зна чительно изменятся, как показано.

select d. dept_name, e. empjast_name from emp e, dept d.

where e. dept_no (+) = d. dept_no order by d. dept_name, e. emp_last_name;

DEPT NAME_EMP LAST NAME.

ACCOUNTING SAGE.

BROADCAST OPERATIONS GIAROINA.

BROADCAST OPERATIONS PALESKI.

BROADCAST OPERATIONS TERRY.

CONSULTING SERVICES BEECHER.

CONSULTING SERVICES CANNELL.

CONSULTING SERVICES LUNDY.

CONSULTING SERVICES MITTLER.

CONSULTING SERVICES NEUMANN.

HOSPITAL SERVICES BRUNNER.

HOSPITAL SERVICES CALLAHAN.

HOSPITAL SERVICES DUELL.

HOSPITAL SERVICES HEIMER.

PERSONNEL RACCIO.

QUALITY CONTROL.

SALES ANNONZIA TO.

SALES FARRELL.

SALES MATTEO.

SALES SIM.

SHIPPING.

При использовании внешнего соединения необходимо убедиться, что путь доступа к таблице внешнего соединения основан на условии соединения одной таблицы, предположим, что необходимо определить всех служащих и клиентов, которые не имеют никаких назначений, с использованием одного запроса. Попытка выполнить следующий запрос, приведет к сообщению об ошибке: select е. emp_Iast_name, c. client_name from emp е, clients с, assignments, а where (a.client_id (+) = c. clientjd or a. emp_id (+) = e. empjd) and a. assignment_start_date is null;

ORA-1 417: a table may be outer joined to at most one other table.

Показать весь текст
Заполнить форму текущей работой