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

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

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

Подзапрос в предложении 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

Статьи по теме
Комментарии
Написать

(обязательно)

(обязательно)

Это не спам (обязательно)