Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кожин / Лекции / Лекция 06 select.doc
Скачиваний:
31
Добавлен:
20.03.2016
Размер:
172.03 Кб
Скачать
    1. Внешнее объединение

Внешнее объединение отображается в WHEREв одной из двух форм:

[таблица 1.]столбец = [таблица2.]столбец (+)

[таблица 1.]столбец (+) = [таблица1.] столбец

При выполнении операции внешнего объединения отбирают­ся все строки, которые были бы отобраны при выполнении операции простого объединения, и дополнительно отбира­ются строки из одной таблицы, которым не обнаружено соответствия по используемому критерию отбора ни с одной строкой другой таблицы.

Внутри одного оператора SELECTтаблица может быть объединена максимально с одной таблицей с использо­ванием внешнего объединения.

Стандарт SQL допускает наличие в базе данных неопределенных значений, поэтому вычисление условия отбора должно производиться не в булевой, а в трехзначной логике со значениями true,falseиunknown(неизвестно). Для любого предиката известно, в каких ситуациях он может порождать значениеunknown. Из таблицы 1 видно, как работают булевские операцииAND,ORиNOTв трехзначной логике.

Таблица 1.

Таблица истинности для операций с неопределенное значение

Операция

Результат

true AND unknown

Unknown

false AND unknown

False

unknown AND unknown

Unknown

true OR unknown

True

false OR unknown

Unknown

unknown OR unknown

Unknown

NOT unknown

Unknown

Функция NVLпозволяет проверить и заменить пустое значение на значение по умолчанию

NVL(выражение1 , выражение2)

Если «выражение1» представляет собой пустое значение возвращается «выражение2», в противном случае возвращается «выражение1».

      1. Подзапросы.

Фраза WHERE из одной запроса может содержать другой запрос - подзапрос. Уровень вложения подзапросов не ограничивается. Подзапрос при формирования множества значений может использовать таблицы, которые использует и основной запрос.

SELECTсписок имен ----

FROM список таблиц |-- главный запрос

WHEREимя1 = ----

(SELECTимя2 ----

FROMсписок таблицEMP|-- подзапрос

WHEREусловие);

ORACLE обрабатывает подзапросы перед обработкой главного запроса поскольку ему нужны их результаты для определения ре­зультата главного запроса.

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

    1. Функции агрегирования результатов запроса

Функция вычисления среднего значения AVG возвра­щает среднее значение числового аргумента выражение, не включая в вычисления значения NULL.

AVG ([DISTINCT I ALL] выражение)

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

SUM([DISTINCTIALL] выражение)

Функция вычисления дисперсии (стандартного укло­нения) STDDEV возвращает дисперсию значений числовых атрибутов, не включая в вычисления значения NULL. Функ­ция использует следующий синтаксис:

STDDEV([DISTINCTIALL] выражение)

Функция VARIANCEвычисляет квадрат дисперсии значена, числовых атрибутов, не включая в вычисления зна­ченияNULL. Функция использует следующий синтаксис:

VARIANCE([DISTINCTIALL] выражение)

Функция подсчета числа отобранных строк COUNTвозвращает количество выбранных строк. Особый вариант использования функцииCOUNT( * ) возвращает число строк в таблице, включая дубликаты и атрибуты с неопределен­ными значениями. Функция использует следующий синтак­сис:

COUNT([DISTINCTIALL] выражение 1 * )

Функция выбора наибольшего значения МАХ возвра­щает максимальное значение параметра. Допускаются аргу­менты типа числовой, символьный и дата. Функция исполь­зует следующий синтаксис:

МАХ ([DISTINCT I ALL] выражение)

Функция выбора наименьшего значения MIN возвра­щает минимальное значение параметра. Допускаются аргументы типа числовой, символьный и дата. Функция исполь­зует следующий синтаксис:

MIN( [DISTINCT I ALL] выражение)

Соседние файлы в папке Лекции