Базы данных - модели, разработка, реализация


         

Внешние объединения


Стандарт SQL2 расширил понятие условного объединения. В стандарте SQL1 при объединении отношений использовались только условия, задаваемые в части

89

WHERE оператора SELECT, и в этом случае в результирующее отношение попадали только сцепленные по заданным условиям кортежи исходных отношений, для которых эти условия были определены и истинны. Однако в действительности часто необходимо объединять таблицы таким образом, чтобы в результат попали все строки из первой таблицы, а вместо тех строк второй таблицы, для которых не выполнено условие соединения, в результат попадали бы неопределенные значения. Или наоборот, включаются все строки из правой (второй) таблицы, а отсутствующие части строк из первой таблицы дополняются неопределенными значениями. Такие объединения были названы внешними в противоположность объединениям, определенным стандартом SQL1, которые стали называться внутренними.

В общем случае синтаксис части FROM в стандарте SQL2 выглядит следующим образом:

  • FROM |
  • < выражение естественного объединения > |
  • < выражение объединения > |
  • < выражение перекрестного объединения > |
  • < выражение запроса на объединение >
  • ::= [ имя синонима таблицы_1] [ ...]
  • [[ ] ]
  • :: =
  • NATURAL { INNER | FULL [OUTER] |
  • LEFT [OUTER] | RIGHT [OUTER]} JOIN
  • CROSS JOIN
  • UNION JOIN
  • { INNER |
  • FULL [OUTER] | LEFT [OUTER] | RIGHT [OUTER]}
  • JOIN {ON условие | [USING (список столбцов)]}
  • В этих определениях INNER - означает внутреннее объединение, LEFT - левое объединение, то есть в результат входят все строки таблицы 1, а части результирующих кортежей, для которых не было соответствующих значений в таблице 2, дополняются значениями NULL (неопределено). Ключевое слово RIGHT означает правое внешнее объединение, и в отличие от левого объединения в этом случае в результирующее отношение включаются все строки таблицы 2, а недостающие части из таблицы 1 дополняются неопределенными значениями, Ключевое слово FULL определяет полное внешнее объединение: и левое и правое.


    Содержание  Назад  Вперед