Создание представления

Оценить
(1 голос)

Представление создается при использовании оператора create view. Общая форма этого оператора:

create view view_name {(column_list)]

[with [encryption  i  schemabinding  i  view_metadata}] as select_statement [with check option]

Здесь view_name- имя определяемого представления; coiumn_iist- список имен, которые будут использованы для столбцов в представлении. Если эта необязательная спецификация опущена, то будут использованы имена столбцов из таблиц, лежащих в основе представления. seiect_statement задает оператор select, который отыскивает строки и столбцы из одной или более таблиц (и/или представлений). Опция with encryption кодирует оператор select, повышая, таким образом, безопасность системы баз данных.

Предложение schemabinding связывает представление со схемой таблицы, лежащей в основе представления. Когда задано schemabinding, то объекты, на которые ссылается оператор select, должны иметь имена, состоящие из двух частей в форме: владелец. объект_базы_данных, где объект_базы_данных может быть именем таблицы, представления или функцией, определенной пользователем.

Любая попытка изменить структуру представлений или таблиц, на которые ссылается представление, созданное с этим предложением, будет ошибочной. Вы должны удалить представление или изменить его так, чтобы оно не содержало предложения schemabinding, если вам нужно применить операторы drop или alter для объектов, на которые осуществляются ссылки. (Предложение with check option подробно обсуждается в разд. «Оператор INSERT и представление» далее В этом разделе.)

Когда представление создается с опцией viewmetadata, все его столбцы (за исключением столбцов с типом данных timestamp) могут изменяться, если представление имеет триггеры insert или update instead of. Триггеры обсуждаются.

Представления могут применяться для различных целей.

♦ Для ограничения использования отдельных столбцов и/или строк таблицы. По этой причине представления могут быть использованы для управления доступом к отдельным частям одной или более таблиц.

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

♦ Для ограничения добавляемых или изменяемых значений некоторым диапазоном.

В примере 11.1 показано создание представления.

Создание представления

 

Запрос в примере 11.1 отыскивает строки в таблице workson, для которых истинным является условие job = 'Clerk'. Представление vcierk определено как строки и столбцы, возвращаемые этим запросом. В табл. 11.1 представлены строки таблицы works on; строки, принадлежащие преставлению vcierk, выделены полужирным шрифтом.

 

Создание представления

 

Создание представления

 

Пример 11.1 задает выборку строк, т.е. он создает горизонтальное подмножество из базовой таблицы workson. Также можно создавать представления, которые наряду со строками ограничивают и столбцы, включаемые в представление. В примере 11.2 показано создание подобного представления.

 

Создание представления

 

Представление vwithoutbudget в примере 11.2 содержит все столбцы таблицы project за исключением столбца budget.

Как уже было сказано, задание имен столбцов в представлении в общем формате оператора create view является необязательным. С другой стороны, существуют два случая, когда требуется явное задание имен столбцов:

♦ если столбец представления является наследуемым из выражения или агрегатной функции;

♦ если два или более столбцов имеют одинаковые имена в таблицах, лежащих в основе представления.

В примере 11.3 показано явное задание имен столбцов в представлении.

 

Создание представления

 

Имена столбцов представления vcount в примере 11.3 должны быть заданы явно, потому что оператор select содержит агрегатную функцию count(*). Все столбцы в этом представлении должны быть именованы.

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

 

Создание представления

 

Представление может быть наследуемым из другого существующего представления, как показано в примере 11.5.

 

Создание представления

 

Представление v_project_p2 в примере 11.5 наследуется из представления v_cierk (см. пример 11.1). Каждый запрос, использующий представление v_project_p2, конвертируется в эквивалентный запрос к базовой таблице works_on.

Вы также можете создавать представление, используя Object Inspector из SQL Server Management Studio. Выберите базу данных, для которой собираетесь создавать представление, щелкните правой кнопкой мыши по Views и выберите пункт New View. Появится соответствующий редактор. Используя этот редактор, вы можете:

♦ выбрать для создаваемого представления таблицы и столбцы из этих таблиц;

♦ присвоить представлению имя и определить условия в предложении where соответствующего запроса.


Изменение и удаление представлений
Редактирование информации, связанной с представлениями
Операторы DML и представления
Представление поиска
Оператор INSERTvi представление

Добавить комментарий


Защитный код
Обновить

© 2018 www.serversql.ru. Все права защищены.