Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
СУБД Oracle не поддерживает ключевое слово AS.<br />
Для того чтобы использовать псевдонимы в СУБД Oracle, просто укажите их без<br />
ключевого слова AS (т.е. укажите Customers С вместо Customers AS С).<br />
Нет также ничего плохого в том, что псевдонимы таблиц используются только во время<br />
выполнения запроса. В отличие от псевдонимов столбцов, псевдонимы таблиц никогда не<br />
возвращаются клиенту.<br />
Использование объединений других типов<br />
До сих пор вы использовали только простые объединения, которые называют внутренние<br />
объединения или объединения по эквивалентности. Теперь мы рассмотрим три<br />
дополнительных типа объединения: самообъединение, естественное объединение и<br />
внешнее объединение.<br />
Самообъединения<br />
Одна из основных причин для использования псевдонимов таблиц состоит в возможности<br />
обращения к одной и той таблице несколько раз в одном операторе SELECT. Покажем это<br />
на примере.<br />
Предположим, вы хотите послать письма по всем контактным адресам клиентов, которые<br />
работают с той же компанией, с которой работает Джим Джонс. Такой запрос требует,<br />
чтобы вначале вы выяснили, с какой компанией работает Джим Джонс, а затем — какие<br />
клиенты работают с этой же компанией. Вот один из способов решения этой задачи.<br />
ВВОД<br />
SELECT cust_id, cusC_name, cust_contact<br />
FROM Customers<br />
WHERE cust_name = (SELECT cust_name<br />
FROM Customers<br />
WHERE cust_contact = 'Jim Jones');<br />
ВЫВОД<br />
cust_id cust_name cust_contact<br />
1000000003 Fun4All Jim Jones<br />
1000000004 Fun4All Denise L. Stephens<br />
АНАЛИЗ<br />
В первом решении используются подзапросы. Внутренний оператор SELECT выполняет<br />
простую выборку, чтобы возвратить имя компании (cust_name), с которой работает Джим<br />
Джонс. Только это имя используется в предложении WHERE внешнего запроса, так что<br />
выбираются имена всех служащих, работающих с этой компанией. (Все о подзапросах<br />
читайте в уроке 11, "Использование подзапросов".<br />
Теперь рассмотрим тот же самый запрос, в котором используется объединение.<br />
ВВОД<br />
SELECT cl.cust_id, cl.cust_name, cl.cust_contact<br />
FROM Customers AS cl, Customers AS c2<br />
WHERE cl.cust_name = c2.cust_name<br />
AND c2.cust_contact = 'Jim Jones';<br />
ВЫВОД<br />
cust_id cust_name cust_contact<br />
1000000003 Fun4All Jim Jones<br />
1000000004 Fun4All Denise L. Stephens