MS SQL-Server 2000. Сивохин А.В. - 49 стр.

UptoLike

Составители: 

В основном представления используются для выборки данных. Однако с помощью
представлений можно выполнять и изменение данных в таблицах, на основе которых построено
представление, при этом требуется соблюдение ряда правил: представление должно содержать,
как минимум, одну таблицу в параметре FROM команды SELECT, не разрешается использование
функций агрегирования и др.
Как и для таблиц, для представлений можно определить следующие права доступа:
SELECT – просмотр данных;
INSERT – добавление данных через представления;
UPDATE – изменение данных в исходных таблицах;
DELETE –удаление данных в исходных таблицах.
Чтобы иметь возможность создавать представления, надо обладать правами владельца
баз данных и иметь соответствующие разрешения для любых таблиц или представлений,
упомянутых в запросе на создание этого представления.
Для создания представления используется следующая команда Transact-SQL:
CREATE VIEW [Имя базы данных.] [имя владельца.]
Имя представления
[(Имя колонки [,... n])]
[WITH{ENCRYPITION\SHEMABINDING\
VIEW_METADATA}
AS Команда SELECT
[WITH CHECK OPTION]
Если в команде не заданы имена колонок представления , то они определяются по
именам выбираемых колонок в команде SELECT. Параметр ENCRYPTION скрывает код
создания этого представления, а параметр SHEMABINDING обеспечивает контроль
структуры исходных объектов, к которым обращается оператор SELECT. Опция WITH CHEC
OPTION не позволяет изменять строки таким образом, чтобы они исчезли при отборе
командой SELECT.
Задание 1. Создать представление auth, ссылающегося на таблицу authors базы
данных Pubs и содержащего идентификационный номер автора au_lname и телефон phone,
при этом отобразить только авторов из КалифорнииСА или авторов, не подписавших
контракт с издательством, выполнив следующую команду:
CREATE VIEW auth
WITH SHEMABINDING
AS SELECT au_id, au_lname, au_fname, phone
FROM dbo. Authors
WHERE state = ‘CA’ OR contract = 0
WITH CHECK OPTION.
Задание 2. Создать представление report, которое ссылается на представление auth и
таблицы titleauthor и titles и в котором выводятся имя автора au_fname, фамилия автора au_lname и
сокращенные названия написанных им книг, выполнив команду:
CREATE VIEW report
AS SELECT [Фамилия] = CAST (au_lname aschar(10)),
[Имя] = CAST(au_fname aschar(10)),
[Название книги] =
CAST (title as char(30)) +
CASE WHEN LEN (title) >30 THEN ‘...’ END
FROM auth a, titleauthor ta, titles t
WHERE ta.au_id = a.au_id AND
         В основном представления используются для выборки данных. Однако с помощью
представлений можно выполнять и изменение данных в таблицах, на основе которых построено
представление, при этом требуется соблюдение ряда правил: представление должно содержать,
как минимум, одну таблицу в параметре FROM команды SELECT, не разрешается использование
функций агрегирования и др.
         Как и для таблиц, для представлений можно определить следующие права доступа:

         SELECT – просмотр данных;
         INSERT – добавление данных через представления;
         UPDATE – изменение данных в исходных таблицах;
         DELETE –удаление данных в исходных таблицах.

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

         CREATE VIEW [Имя базы данных.] [имя владельца.]
                        Имя представления
                              [(Имя колонки [,... n])]
         [WITH{ENCRYPITION\SHEMABINDING\
             VIEW_METADATA}
          AS Команда SELECT
             [WITH CHECK OPTION]

      Если в команде не заданы имена колонок представления , то они определяются по
именам выбираемых колонок в команде SELECT. Параметр ENCRYPTION скрывает код
создания этого представления, а параметр SHEMABINDING обеспечивает контроль
структуры исходных объектов, к которым обращается оператор SELECT. Опция WITH CHEC
OPTION не позволяет изменять строки таким образом, чтобы они исчезли при отборе
командой SELECT.

      Задание 1. Создать представление auth, ссылающегося на таблицу authors базы
данных Pubs и содержащего идентификационный номер автора au_lname и телефон phone,
при этом отобразить только авторов из Калифорнии ‘СА’ или авторов, не подписавших
контракт с издательством, выполнив следующую команду:

         CREATE VIEW auth
             WITH SHEMABINDING
         AS SELECT au_id, au_lname, au_fname, phone
             FROM dbo. Authors
            WHERE state = ‘CA’ OR contract = 0
         WITH CHECK OPTION.

         Задание 2. Создать представление report, которое ссылается на представление auth и
таблицы titleauthor и titles и в котором выводятся имя автора au_fname, фамилия автора au_lname и
сокращенные названия написанных им книг, выполнив команду:

         CREATE VIEW report
         AS SELECT [Фамилия] = CAST (au_lname aschar(10)),
                    [Имя]          = CAST(au_fname aschar(10)),
                    [Название книги] =
                         CAST (title as char(30)) +
                         CASE WHEN LEN (title) >30 THEN ‘...’ END
            FROM auth a, titleauthor ta, titles t
            WHERE ta.au_id = a.au_id AND