Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену.pdf
Скачиваний:
186
Добавлен:
28.06.2014
Размер:
1.48 Mб
Скачать

35. Т-SQL. Добавление, удаление и обновление данных в представлении. Примеры.

Представление – это виртуальная таблица, определяемая запросом, содержащим оператор SELECT. Эта виртуальная таблица состоит из данных одной или нескольких реальных таблиц, а для пользователей представление выглядит, как реальная таблица. И действительно, с представлением можно работать, как с обычной таблицей. Пользователи могут обращаться к этим виртуальным таблицам в операторах T-SQL таким же образом, как и к таблицам. К представлению можно применять операции SELECT, INSERT, UPDATE и DELETE.

На самом деле представление хранится просто как заранее определенный оператор SQL. При доступе к представлению оптимизатор запросов SQL Server объединяет текущий выполняемый оператор SQL с запросом, который был использован для определения данного представления.

Типы представлений:

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

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

Связывание двух и более таблиц. Вы можете создать представление с помощью операции связывания (join). Сложные операции связывания можно упростить, если использовать для этого представление.

Агрегированная информация. Вы можете создать представление, содержащее агрегированные данные. Этот тип представления также используется для упрощения

сложных операций.

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

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

Ограничения представлений:

Ограничения по колонкам. Представление может использовать до 1024 колонок таблицы. Если вам требуется ссылка на большее число колонок, то придется использовать какой-либо другой метод.

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

Ограничение безопасности. Создатель представления должен иметь доступ ко всем колонкам, входящим в это представление.

Правила целостности данных. Любые обновления, модификации и т.п., вносимые в представление, не могут нарушать правил целостности данных. Например, если базовая таблица не допускает null-значений, то они также не допускаются этим представлением.

Ограничение на количество уровней вложенности представлений. Представления могут формироваться на основе других представлений – иными словами, вы можете создать представление, имеющее доступ к другим представлениям. Допускается до 32 уровней вложенности представлений.

Ограничение оператора SELECT. Используемый для представления оператор SELECT не может содержать оператора ORDER BY, COMPUTE или COMPUTE BY или ключевого слова INTO.

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

Оператор CREATE VIEW имеет следующий синтаксис:

CREATE VIEW имя_представления [(колонка, колонка ...)]

[WITH ENCRYPTION]

AS

ваш оператор SELECT [WITH CHECK OPTION]

Ключевое слово WITH ENCRYPTION указывает, что определение представления

(оператор SELECT, определяющий представление) должно шифроваться. SQL Server использует для шифрования операторов SQL тот же метод, что и для паролей. Этот метод обеспечения безопасности может оказаться полезным, если вы не хотите, чтобы определенные классы пользователей знали, к каким таблицам осуществляется доступ.

Ключевое слово WITH CHECK OPTION указывает, что операции модифицирования данных, применяемые к представлению, должны отвечать критериям, содержащимся в операторе SELECT. Например, можно запретить операцию модифицирования данных, применяемую к представлению для создания строки таблицы, которая не видна внутри этого представления.

Пример. Выбор подмножества колонок из таблицы Employee.

CREATE VIEW emp_vw AS

SELECT name, phone, office

FROM Employee

Пример. Выбор подмножества строк, где Dept = 1.

CREATE VIEW emp_vw2 AS

SELECT *

FROM Employee

WHERE Dept = 1

Пример. Связывание таблиц Employee2 и MАnager в одну виртуальную таблицу значением mАnager.id:

CREATE VIEW org_chart

AS

SELECT

Employee.ename, MАnager.mname

FROM

Employee, MАnager

WHERE

Employee.manager_id = mАnager.id

GROUP BY

MАnager.mname, Employee.ename

Использование T-SQL для изменения и удаления представлений

Для изменения представлений с помощью T-SQL используйте оператор ALTER VIEW. ALTER VIEW имя_представления [(колонка, колонка, ...)]

[WITH ENCRYPTION] AS

ваш оператор SELECT

[WITH CHECK OPTION]

Для удаления представления используйте оператор DROP VIEW. DROP VIEW имя_представления