пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Подзапросы. Классификация подзапросов. Пример простого скалярного подзапроса.

Часто невозможно решить поставленную задачу с помощью одного запроса. В этом случае используют подзапросы (внутренние, вложенные запросы).

Подзапрос представляет собой оператор SELECT, вложенный в тело другого оператора. Кодирование подзапроса подчиняется тем же правилам, что и кодирование простого оператора SELECT. Внешний оператор использует результат выполнения внутреннего оператора для определения окончательного результата.

        По количеству возвращаемых значений подзапросы разделяются на два типа:

       - скалярные подзапросы, которые возвращают единственное значение;

       - табличные подзапросы, которые возвращают множество значений.

        По способу выполнения выделяют два типа подзапросов:

       - простые подзапросы;

       - сложные подзапросы.

       Подзапрос называется простым, если он может рассматриваться независимо от внешнего запроса. СУБД выполняет такой подзапрос один раз и затем помещает его результат во внешний запрос.

       Сложный подзапрос не может рассматриваться независимо от внешнего запроса. В этом случае выполнение оператора начинается с внешнего запроса, который отбирает каждую отдельную строку таблицы. Для каждой выбранной строки СУБД выполняет подзапрос один раз.

       ПримерОпределить номера деталей, цена которых меньше средней цены деталей.

  • SELECT dnum
  • FROM D
  • WHERE dprice<(SELECT AVG(dprice)
  •                            FROM D)

Подзапросы, внутренние или вложенные запросы – есть не что иное, как запрос внутри запроса. Обычно, подзапрос используется в конструкции WHERE. И, в большинстве случаев, подзапрос используется, когда вы можете получить значение с помощью запроса, но не знаете конкретного результата.

Подзапросы являются альтернативным путем получения данных из множества таблиц.

Наряду с операторами сравнения такими, как =, <, >, >=, <= и др., Можно использовать подзапросы с перечисленными ниже конструкциями:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

Обычно, подзапрос возвращает только одну запись, но случается и так, что записей может быть много, тогда в условии WHERE используются такие операторы, как IN, NOT IN.

Оператор SQL IN позволяет определить, совпадает ли значение объекта со значением в списке.

Операторы ANY и ALL используются с предложением WHERE или HAVING. ANY оператор возвращает true, если какое-либо из значений подзапроса удовлетворяет условию. Оператор ALL возвращает true, если все значения подзапроса удовлетворяют условию.

 


21.01.2019; 16:04
хиты: 426
рейтинг:0
Точные науки
информатика
База данных
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь