Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информационное обеспечение3.Х.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
806.75 Кб
Скачать
    1. Выбор данных из базы – оператор join

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

Оператор JOIN применяется после ключевого слова FROM и имеет следующий формат (далее указана только форма FROM все формат всех остальных ключевых слов запроса не изменяется):

FROM источник_данных [псевдоним] тип_соединения JOIN

источник_данных [псевдоним] [ON условие_соединения] [тип_соединения JOIN

источник_данных [псевдоним] [ON условие_соединения] …]

Условие_соединения – это логическое выражение правило формирование совпадает с правилами формирования условия после ключевого слова WHERE.

Тип_соединения – это один из следующих элементов:

{INNER | {LEFT | RIGHT | FULL} OUTER | CROSS }

Определены три типа соединений:

CROSS – декартово произведения, полный аналог соединения рассмотренного в предыдущей главе. Данный вид соединения является симметричным (изменения последовательности источников данных не влияет на результат) и не требует указания условия (конструкция ON условие_соединения).

INNER – внутреннее соединение, в результате данного соединения формируется таблица, состоящая из строк декартового произведения, удовлетворяющих условию, указанному после ON. Данный вид соединения является симметричным.

OUTER – внешнее соединение. При внешнем соединении в результирующую таблицу обязательно попадают все строки одной из соединяемых таблиц или обоих. Различают три типа внешних соединений.

LEFT – левое внешнее соединение, в результате данного соединения формируется таблица, объединяющая две таблицы.

Первая таблица – это результат внутреннего соединения (INNER JOIN) левой и правой таблиц. Вторая таблица состоит из записей левой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие правой таблице, заполняются значениями NULL.

RIGHT – правое внешнее соединение, в результате данного соединения формируется таблица, объединяющая две таблицы.

Первая таблица – это результат внутреннего соединения (INNER JOIN) левой и правой таблиц. Вторая таблица состоит из записей правой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие левой таблице, заполняются значениями NULL.

FULL – полное внешнее соединение, в результате данного соединения формируется таблица, объединяющая три таблицы.

Первая таблица – это результат внутреннего соединения (INNER JOIN) левой и правой таблиц. Вторая таблица состоит из записей правой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие левой таблице, заполняются значениями NULL. Вторая таблица состоит из записей левой таблицы, которые не вошли в первую таблицу. Для второй таблицы поля, соответствующие правой таблице, заполняются значениями NULL. Данный вид соединения является симметричным.