Создание и удаление представлений
Поскольку представление является объектом базы данных, для его создания используется стандартная команда языка DDL CREATE…
Create VIEW имя [(список_столбцов)]
as
select …// любой запрос на выборку
Команда проста, поскольку все, что нужно для создания представления – его имя и запрос на выборку, который лежит в основе данного представления. Список столбцов представления должен быть указан явно, если в запросе присутствуют вычисляемые столбцы без указания псевдонима. В остальных случаях столбцы представления получат такие же имена, как используемые в запросе столбцы таблиц. Все же рекомендуется задавать список столбцов в явном виде.
Например, создадим представление, содержащее столбцы «код студента, фамилия студента, его средний балл» :
Create VIEW stud_mark (cod_st, name_st, avg_mark)
as
select st.cod_st, st.name_st, avg(m.mark)
from students st left join marks m
on st.cod_st=m.cod_st
GROUP BY st.cod_st, st.name_st
При создании представления пользователю не возвращается виртуальная таблица, которую он обычно получает при выполнении SELECT… Вместо этого, он получит лаконичное сообщение типа «Представление создано».
Для того, чтобы материализовать представление, т.е. получить данные в виде виртуальной таблицы, необходимо выполнить запрос SELECT к представлению так же, как к обычной таблице:
Select * from stud_mark
Можно написать и любой другой запрос на выборку к представлению:
Select cod_sub, avg_mark from stud_mark
where cod_st=123
Удаляется представление также стандартными средствами DDL:
DROP VIEW имя_представления
Выполнив последовательно команды DROP VIEW…, а затем снова CREATE VIEW … с тем же самым запросом SELECT, мы не напрасно потеряем время. Во многих случаях СУБД сформирует новый план исполнения того же самого запроса в соответствии с изменившимся наполнением таблиц или появлением новых индексов. Это приведет к сокращению времени материализации представления.
СУБД Oracle позволяет изменить план исполнения запроса без удаления представления, используя команду:
alter VIEW имя recomplile
Дата добавления: 2015-08-26; просмотров: 768;