Резюме по извлечению данных с помощью подзапросов

В этой рубрике были рассмотрены темы, посвященные извлечению данных посредством подзапросов.

  • подзапрос, содержащий несколько столбцов, возвращает более одного столбца;

  • сравнения нескольких столбцов могут быть попарными или непарными;

  • подзапрос, содержащий несколько столбцов, может также использоваться в предложении FROM инструкции SELECT.

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

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

Возможное местонахождение скалярных подзапросов:

  • часть условия и выражения в DECODE и CASE;

  • все предложения в инструкции SELECT, кроме GROUP BY;

  • предложение SET и предложение WHERE в инструкции UPDATE.

  • Коррелированные подзапросы удобны, когда подзапрос должен возвращать разные результаты для каждой строки-кандидата.

  • Оператор EXISTS является логическим оператором, проверяющим наличие значения.

  • Коррелированные подзапросы могут использоваться с инструкциями SELECT, UPDATE и DELETE.

  • Предложение WITH может применяться для использо- вания одного и того же блока запроса в инструкции SELECT, когда она встречается более одного раза.

Сервер Oracle выполняет коррелированный подзапрос, когда подзапрос ссылается на столбец из таблицы, упоминаемой в родительской инструкции. Коррелированный подзапрос оценивается один раз для каждой строки, обрабатываемой родительской инструкцией.

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

Далее: Отладка Процедур и Функций

Related Posts