Представление – это логический образ таблицы, созданный на основе реальной таблицы или другого представления. Представление не содержит собственных данных, а скорее является “окном”, через которое можно просматривать или изменять данные из таблиц. Представление хранится в словаре данных как команда SELECT.
Создание представлений.
Представление создается путем включения подзапроса в команду CREATE VIEW.
Синтаксис:
CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW представление [(псевдоним[, псевдоним]…)] AS подзапрос [WITH CHECK OPTION [CONSTRAINT ограничение]] [WITH READ ONLY] |
---|
где
FORCE |
Создание представления независимо от того, существуют ли базовые таблицы. |
NOFORCE |
Создание представления только при условии существования базовых таблиц (умолчанию). |
представление |
Имя представления. |
псевдоним |
Имена выражений, выбранных в запросе для представления. |
подзапрос |
Полная команда SELECT. |
WITH CHECK OPTION |
Режим, при котором добавлять или обновлять можно только строки, доступные в представлении. |
ограничение |
Имя, присвоенное ограничению CHECK OPTION. |
WITH READ ONLY |
Запрет применения к данному представлению операций DML. |
Для подзапроса, участвующего при создании представления, действуют все правила, определенные для подзапроса (см. команду SELECT с подзапросом). Получить описание представления можно, например, с помощью команды DESCRIBE среды SQL*Plus. Выборка данных из представления производится посредством команды SELECT со ссылкой на это представление.
Использование представлений имеет целый ряд преимуществ:
В зависимости от количества таблиц, на основе которых оно создается, представление может быть простым или сложным. В следующей таблице приведены ограничения, связанные с простыми или сложными представлениями.
Простые представления |
Сложные представления | |
Количество таблиц |
Одна |
Одна или больше |
Содержит функции |
Нет |
Да |
Содержит группы данных |
Нет |
Да |
Операции DML над представлением |
Да |
Нет |
Пример: Создается представление EMPVU45, включающее учетный номер, фамилию и должность каждого служащего отдела номер 45.
Изменение представления.
Изменить параметры представления можно командой CREATE OR REPLACE. При этом будет создано новое представление с тем же именем.
Пример: Изменение представления EMPVU45 с добавлением псевдонимов для каждого столбца. Псевдонимы столбцов в команде указаны в том же порядке, что и столбцы в подзапросе.
Пример: Создание сложного представления с групповыми функциями для выборки данных из двух таблиц.
Правила выполнения операций DML над представлением.
Операции DML могут быть выполнены только с простым представлением.
Удаление строк невозможно, если представление содержит следующее:
Нельзя изменять данные в представлении, если оно содержит:
Нельзя добавлять данные в представление, если оно содержит:
Параметр WITH READ ONLY в определении представления запрещает операции DML над этим представлением.
Предложение WITH CHECK OPTION позволяет задать ограничения, накладываемые на представление. При использовании такого представления необходимо следить за тем, чтобы результаты операций DML оставались в пределах домена представления.
Пример: Попытка изменить номер отдела для какой-либо строки в представлении закончится неудачей, т.к. при этом нарушится ограничение CHECK OPTION.
Пример: Создание представления с параметром READ ONLY. При попытке выполнить операцию DML над какой-либо строкой представления сервер Oracle7 выдает сообщение об ошибке ORA-01732.
Имя представления и его определение содержатся в таблице словаря данных USER_VIEWS.
Пример:
Удаление представления.
Удалить представление можно с помощью команды DROP VIEW. Удаление представления не вызывает потери данных.
Пример:
![]() |
Для закрепления материала можно выполнить Практическое задание 13 |