Создание представления(CREATE VIEW)
В команду CREATE VIEW включается подзапрос
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW представление
[(псевдоним[, псевдоним]...)]
AS подзапрос
[WITH CHECK OPTION [CONSTRAINT ограничение]]
[WITH READ ONLY [CONSTRAINT ограничение]];
Подзапрос может содержать сложную команду SELECT
Создание представления: пример
Создание представления EMPVU80 с информацией о служащих отдела 80
CREATE VIEW empvu80
AS SELECT employee_id, last_name, salary
FROM employees
WHERE department_id = 80;
View created.
Вывод структуры представления с помощью команды DESCRIBE iSQL*Plus
DESCRIBE empvu80
Создание представления: пример
Создайте представление с псевдонимами столбцов в подзапросе
CREATE VIEW salvu50
AS SELECT employee_id ID_NUMBER, last_name NAME,
salary*12 ANN_SALARY
FROM employees
WHERE department_id = 50;
View created.
Производите выборку столбцов из представления по этим псевдонимам
Выборка данных из представления: пример
S ELECT *
FROM salvu50;
Изменение представления
пример
Изменение представления EMPVU80 с помощью предложения CREATE OR REPLACE VIEW. Добавление псевдонима для каждого столбца.
CREATE OR REPLACE VIEW empvu80
(id_number, name, sal, department_id)
AS SELECT employee_id, first_name || ' ' || last_name,
salary, department_id
FROM employees
WHERE department_id = 80;
View created.
Порядок псевдонимов в предложении CREATE VIEW должен быть таким же, как порядок столбцов в подзапросе.
Создание сложного представления: пример
Создание сложного представления с групповыми функциями для вывода данных из двух таблиц
CREATE VIEW dept_sum_vu
(name, minsal, maxsal, avgsal)
AS SELECT d.department_name, MIN(e.salary),
MAX(e.salary),AVG(e.salary)
FROM employees e, departments d
WHERE e.department_id = d.department_id
GROUP BY d.department_name;
View created.
Правила выполнения DML операций
с представлением
Операции DML можно выполнять с простыми представлениями.
Нельзя удалить строку, если представление содержит:
Групповые функции
Предложение GROUP BY
Ключевое слово DISTINCT
Ссылку на псевдостолбец ROWNUM .
Правила выполнения DML операций с представлением
Невозможно изменить данные в представлении,
которое содержит:
Групповые функции
Предложение GROUP BY
Ключевое слово DISTINCT
Ссылку на псевдостолбец ROWNUM
Столбцы, определенные с помощью выражений.
Правила выполнения DML операций с представлением
Невозможно добавить данные в представление,
которое содержит:
Групповые функции
Предложение GROUP BY
Ключевое слово DISTINCT
Ссылку на псевдостолбец ROWNUM
Столбцы, определенные с помощью выражений
Невозможно добавить данные в представление,
которое не содержит определенные в базовых
таблицах столбцы с ограничением NOT NULL .
Использование предложения WITH CHECK OPTION
Необходимо следить за тем, чтобы результаты DML операций оставались в пределах домена представления.
CREATE OR REPLACE VIEW empvu20
AS SELECT *
FROM employees
WHERE department_id = 20
WITH CHECK OPTION CONSTRAINT empvu20_ck ;
View created.
Попытка изменить номер отдела для какой-либо строки в представлении закончится неудачей, т.к. при этом нарушится ограничение WITH CHECK OPTION.
Запрет DML операций
Использование опции WITH READ ONLY запрещает выполнять над представлением любые DML операции.
Попытка выполнить команду DML для любой строки представления вызовет ошибку сервера Oracle.
Запрет DML операций
CREATE OR REPLACE VIEW empvu10
(employee_number, employee_name, job_title)
AS SELECT employee_id, last_name, job_id
FROM employees
WHERE department_id = 10
WITH READ ONLY;
View created.
Удаление представления
Удаление представления не вызывает потери данных, т.к. представление основано на реальных таблицах базы данных.
DROP VIEW представление;
DROP VIEW empvu80;
View dropped.
Do'stlaringiz bilan baham: |