Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Внутренние соединения

Читайте также:
  1. Zn и его соединения
  2. Азот. Водородные соединения азота
  3. Алифатические соединения
  4. Аминоспиртами называют соединения, содержащие в молекуле одновременно амино- и гидроксигруппы.
  5. Биологически активные соединения плодов и ягод.
  6. Болтовые соединения металлических конструкций
  7. Бор и его соединения
  8. Бор и его соединения. Получение, свойства, применение.
  9. Важные для жизни химические элементы и соединения
  10. Вещества, которые при диссоциации образуют как ионы водорода, так и гидроксид-ионы, называют амфотерными соединениями.

Внутреннее соединение возвращает только те строки, для которых условие соединения принимает значение true.

SELECT first_name, last_name, department

FROM employee, department

WHERE job_code = "VP"

получить список сотрудников, состоящих в должности "вице-президент", а также названия их отделов

FIRST_NAME LAST_NAME DEPARTMENT
Robert Nelson Corporate Headquarters
Mary S. MacDonald Corporate Headquarters
Robert Nelson Sales and Marketing
Mary S. MacDonald Sales and Marketing
Robert Nelson Engineering
Mary S. MacDonald Engineering
Robert Nelson Finance
Mary S. MacDonald Finance

Этот запрос ("без соединения") возвращает неверный результат, так как имеющиеся между таблицами связи не задействованы. Отсюда и появляется дублирование информации в результирующей таблице. Правильный результат дает запрос с использованием операции соединения:

SELECT first_name, last_name, department

получить список сотрудников, состоящих в должности "вице-президент", а также названия их отделов

FIRST_NAME LAST_NAME DEPARTMENT
Robert Nelson Engineering
Mary S. MacDonald Sales and Marketing

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

Замечание 1: в одном запросе нельзя смешивать использование написания имен таблиц и их алиасов.

Замечание 2: алиасы таблиц могут совпадать с их именами.

получить список сотрудников, состоящих в должности "вице-президент", а также названия их отделов

FIRST_NAME LAST_NAME DEPARTMENT
Robert Nelson Engineering
Mary S. MacDonald Sales and Marketing

А вот пример запроса, соединяющего сразу три таблицы:

SELECT first_name, last_name, job_title,

department

FROM employee e, department d, job j

WHERE d.mngr_no = e.emp_no

AND e.job_code = j.job_code

AND e.job_grade = j.job_grade

AND e.job_country = j.job_country

получить список сотрудников с названиями их должностей и названиями отделов

FIRST_NAME LAST_NAME JOB_TITLE DEPARTMENT
Robert Nelson Vice President Engineering
Phil Forest Manager Quality Assurance
K. J. Weston Sales Representative Field Office: East Coast
Katherine Young Manager Customer Support
Chris Papadopoulos Manager Research and Development
Janet Baldwin Sales Co-ordinator Pacific Rim Headquarters
Roger Reeves Sales Co-ordinator European Headquarters
Walter Steadman Chief Financial Officer Finance

В данном примере последние три условия необходимы в силу того, что первичный ключ в таблице JOB состоит из трех полей - см. рис.1.

Мы рассмотрели внутренние соединения с использованием стандарта ANSI-89. Теперь опишем новый (ANSI-92) стандарт:

SELECT first_name, last_name, department

FROM employee e JOIN department d

ON e.dept_no = d.dept_no

AND department = "Customer Support"

WHERE last_name starting with "P"

получить список служащих (а заодно и название отдела), являющихся сотрудниками отдела "Customer Support", фамилии которых начинаются с буквы "P"




Дата добавления: 2014-12-15; просмотров: 111 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав