Ключевое слово INNER

Этот тип связи используется по умолчанию. Указание сочетания INNER JOIN равносильно указанию только ключевого слова JOIN. В качестве кандидатов на включение в результат запроса рассматриваются пары строк, удовлетворяющие критерию связывания в обеих таблицах. Затем строки из левой таблицы, для которых не имеется пары в связанной таблице, в результат не включаются. Также не включаются в результат и строки правой таблицы, для которых нет соответствующей строки в левой таблице.

В приведенном ниже примере выполняется выборка данных из таблиц «Дисциплины» и «Учебный_ план» с помощью запроса SELECT. Таблицы связаны по ключевому полю ID_ Д исциплина, имеющемуся в каждой из них. Для каждой строки таблицы «Учебный_ план» ищется строка с совпадающим значением поля ID_ Д исциплина в таблице «Дисциплины». Все строки таблицы «Учебный_ план», для которых нет строк с соответствующим значением поля ID_ Дисциплина, игнорируются и не включаются в конечный результат. Аналогично не включаются в результат все строки таблицы «Дисциплины», для которых нет соответствующей строки в таблице «Учебный план» (что, однако, невозможно для данного примера, так как столбец ID_ Дисциплина таблицы «Учебный_ план» связан внешним ключом со столбцом ID_ Дисциплина таблицы «Дисциплины»).

SELECT Наименование, Семестр, Количество_ часов

FROM Учебный_ план INNER JOIN Дисциплины ON

Учебный_ план. ID_ Дисциплина Дисциплины. ID_ Дисциплина

WHERE Количество_ часов > 60

В результате выполнения этой команды будет возвращен набор

строк, изображенный на рис. 7.10.

Ключевое слово LEEP [ОUTER]

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

SELECT Наименование, Семестр, Отчетность

FROM Дисциплины LEFT OUTER JOIN Учебный_ план ON

Учебный_ план.ID_ Дисциплина = Дисциплины. ID_ Дисциплина

WHERE {Наименование LIKE % информатик %)

Будет возвращен набор строк, изображенный на рис. 7.11. Как видно, по сравнению с использованием ключевого слова INNER,в результат запроса добавлена строка из таблицы «Дисциплины», которая удовлетворяет сформулированному условию отбора, но для которой не существует соответствующей строки в таблице «Учебный_ план». В столбцах Семестр и Отчетность (относящихся к таблице «Учебный_ план») для этих строк установлено значение NULL.

Ключевое слово RIGHT [ОUTER]

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

SELECT Отчетность, Семестр, Наименование

FROM Учебный_ план RIC»HT OUTER JOIN Дисциплины ОN

Учебный_ план. ID_ Дисциплина Дисциплины. ID_ Дисциплина

WHERE (Наименование LIKE '% информатик %')

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

Ключевое слово FULL (OUTER]

При использовании ключевого слова FULL в результат будут включены все строки как правой, так и левой таблицы. Применение ключевого слова FULL [OUTER] можно рассматривать как одновременное применение ключевых слов LEFT [OUTER] и RIGHT[OUTER].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: