Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2 Проектирование серверной части приложе...doc
Скачиваний:
3
Добавлен:
16.11.2019
Размер:
241.15 Кб
Скачать

Тема 2.8 Работа с просмотрами view.

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

Для создания просмотра используется оператор:

CREATE VIEW <имя просмотра>

[(столбец1 [, столбец2 …])]

AS <оператор SELECT> [WITH CHECK OPTION];

в котором

  • [(столбец1 [, столбец2 …])] – необязательный список столбцов

  • <оператор SELECT> - полнофункциональный оператор SELECT

  • [WITH CHECK OPTION]определяет, допускать ли для обновляемых просмотров ввод записей, неудовлетворяющих условию формирования просмотра.

Пример:

Создается просмотр, содержащий поля таблицы RASHOD и цену товара из таблицы TOVARY.

CREATE VIEW RASH_FULL

AS

SELECT R.DAT_RASH, R.TOVAR, R.KOLVO, T.ZENA

FROM RASHOD R, TOVARY T

WHERE R.TOVAR= T.TOVAR WITH CHECK OPTION

Для удаления просмотра используется оператор:

DROP VIEW <имя просмотра>

Преимущества создания просмотров:

  • однажды определив просмотр, не нужно всякий раз формировать оператор SELECT; это важно для сложных операторов, выполняющих соединение нескольких таблиц.

  • просмотр может представлять подмножество столбцов из таблицы, что важно для обеспечения сохранности данных и усиления безопасности.

Способы формирования просмотров:

1. Вертикальный срез таблицы, когда в просмотр включается подмножество столбцов таблицы:

CREATE VIEW RASH_V

AS

SELECT DAT_RASH, TOVAR, KOLVO

FROM RASHOD

2. Горизонтальный срез таблицы, когда в просмотр включаются все столбцы, но не все записи:

CREATE VIEW RASH_H

AS

SELECT *

FROM RASHOD

WHERE TOVAR= «МОЛОКО»

3. вертикально-горизонтальный, когда в просмотр включается подмножество столбцов и подмножество строк.

CREATE VIEW RASH_H_V

AS

SELECT DAT_RASH, TOVAR, KOLVO

FROM RASHOD

WHERE TOVAR= «МОЛОКО» ;

4. подмножество строк и столбцов соединения разных таблиц:

CREATE VIEW RASH_FULL

AS

SELECT R.DAT_RASH, R.TOVAR, R.KOLVO, T.ZENA

FROM RASHOD R, TOVARY T

WHERE R.TOVAR= T.TOVAR ;

Имена столбцов в просмотре должны указываться в том случае, когда в качестве столбца просмотра определяется выражение.

Пример:

CREATE VIEW STOIM_RASH (DAT_RASH, TOVAR, STOIM)

AS

SELECT R.DAT_RASH, R.TOVAR, R.KOLVO*T.ZENA

FROM RASHOD R, TOVARY T

WHERE R.TOVAR=T.TOVAR ;

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

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

  • формироваться из записей только одной таблицы;

  • оператор SELECT не должен использовать агрегирующих (вычисляемых) функций, режим DISTINCT (в результирующий НД включаются не все записи с одинаковым значением какого-либо столбца, а только одну из них), предложение HAVING (наложение ограничений на группировку записей), соединения таблиц, хранимые процедуры и функции, определенные пользователем .

  • в просмотр должен быть включен каждый столбец таблицы, имеющий атрибут NOT NULL.

Если просмотр удовлетворяет этим условиям, к нему могут применяться операторы INSERT и UPDATE, а также DELETE .