Ключевое слово 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].
Дата добавления: 2015-04-15; просмотров: 1143;