Извлечение данных с использованием подзапроса как источника

Подзапрос можно использовать в предложении FROM инструкции SELECT, что весьма похоже на использование представлений.

4-5-8926284

Подзапрос в предложении FROM инструкции SELECT называется также встроенным представлением. Подзапрос в предложении FROM инструкции SELECT определяет источник данных для этой конкретной инструкции SELECT (и только для нее). Как и в случае представления базы данных, инструкция SELECT в подзапросе может быть простой или сложной, в зависимости от потребностей.

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

Используя встроенные представления, можно хранить в одном месте весь программный код, необходимый для поддержки запроса. Это позволяет избежать сложности создания отдельного представления базы данных. В примере на рисунке показывается, как использовать встроенное представление для отображения названия отдела и города в Европе. Подзапрос в предложении FROM реализует выборку идентификатора местоположения, названия города и страны путем объединения трех разных таблиц. Выходные данные внутреннего запроса рассматриваются как таблица для внешнего запроса. Внутренний запрос сходен с запросом представления базы данных, но не имеет никакого физического имени.

Для примера, показанного на рисунке, таблица loc создается путем выполнения следующей инструкции:

     CREATE TABLE loc AS SELECT * FROM locations;

Такие же выходные данные, как и в примере на рисунке, можно вывести на экран, выполнив следующие два шага:

  1. Создайте представление базы данных:

     CREATE OR REPLACE VIEW european_cities AS SELECT l.location_id, l.city, l.country_id FROM loc l JOIN countries c ON(l.country_id = c.country_id) JOIN regions USING(region_id)

WHERE region_name = ‘Europe’;

  1. Объедините представление EUROPEAN_CITIES с таблицей DEPARTMENTS:

     SELECT department_name, city FROM departments

NATURAL JOIN european_cities;

Далее: Функции CURRENT_DATE, CURRENT_TIMESTAMP и LOCALTIMESTAMP

Похожие записи