Пояснение. Добро пожаловать в Мастер создания представлений. Этот Мастер позволяет вам создать новое представление. Представления


Download 85.96 Kb.
bet3/4
Sana30.12.2022
Hajmi85.96 Kb.
#1072913
1   2   3   4
Bog'liq
2 5274111687916529849

Щелкните по кнопке Готово для завершения формирования текста представления в редакторе.
После "нажатия" на эту кнопку мастер сформирует заготовку оператора CREATE VIEW и отобразит ее в окне текстового редактора утилиты (рис. 75).

Рис. 75Отображение заготовки CREATE VIEW в окне текстового редактора утилиты SQL Central
Откорректируем текст заготовки в части базового оператора. Тогда окончательный текст оператора CREATE VIEW примет следующий вид:
//Окончательный текст оператора CREATE VIEW
CREATE VIEW
Stepanov.Code_books_1_3
AS SELECT Books.Code_book,
Books.Author, Books.Number
FROM Stepanov.Books
WHERE Code_book>=1
AND Code_book<=3
Проверим текст оператора на синтаксис при помощи команды меню File|Execute Script. После ее успешного окончания выходим из текстового редактора. В результате в базе данных появляется новое представление Code_books_1_3. Данный факт выражается в появлении одноименного элемента в папке Views. (см. рис. 76).

Рис. 76Обновленное содержание папки Views
Для создания представления Code_books_1_3 в утилите ISQL необходимо выполнить оператор CREATE VIEW окончательного вида, приведенный выше. Убедиться в появление нового представления можно, просмотрев список имеющихся в базе данных таблиц и представлений. Он появляется на экране после нажатия на клавишу F7 (см. рис. 22). Другим способом проверки наличия в базе данных нового представления является анализ содержимого системного представления SYS.SYSVIEWS. Текст оператора CREATE VIEW можно получить, выполнив следующие SQL-операторы:
//Получение текста представления
SELECT Viewtext
//поле Viewtext содержит текст представления
FROM SYS.SYSVIEWS
WHERE Viewname =
'Code_books_1_3' //названия представления
/*AND Vcreator =
'Stepanov' ; */ /* если имя представления не
уникально, то требуется указать имя его
владельца */
//оператор экспорта результатов оператора SELECT
OUTPUT
TO d:\Log_db\viewtext.sql /* полное имя файла
куда осуществляется экспорт
текста представления */
FORMAT /* в формате */ ASCII
ПРИМЕЧАНИЕ
При выполнении оператора OUTPUT в формате ASCII все переводы на новую строку исходного текста в формируемый текстовый файл записываются в виде последовательности символов \X0D\X0A.
В SYBASE SQL Anywhere представления создаются оператором CREATE VIEW. Для последующей изменения текста представлений применяется оператор ALTER VIEW. Он заменяет в существующим представлении текст базового оператора. В утилите ISQL в операторе ALTER VIEW каждый раз приходится вводить текст базового оператора. В утилите SQL Central полный текст оператора ALTER VIEW выводится в окне текстового редактора утилиты после двойного щелчка мыши по пиктограмме представления (см. рис. 76). В этом случае текст можно отредактировать, используя возможности текстового редактора.
Использовать представления имеют право:

  • владелец представления;

  • владелец всех базовых таблиц представления;

  • администратор базы данных;

  • пользователи, имеющие соответствующие привилегии для всех базовых таблиц представления;

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

Рассмотрим на примере как определяются привилегии для представлений. Для этого установим пользователю Popova привилегию SELECT для представления Code_books_1_3.
В SQL Central для этого следует выполнить следующую последовательность действий:

  • щелкнуть правой кнопкой мыши по пиктограмме представления Code_books_1_3 (см. рис. 76);

  • в появившемся контекстном меню выбрать пункт меню Properties;

  • в открывшемся окне Code_books_1_3 Properties - окне свойств представления выбрать закладку Permissions:

  • в закладке Permissions установить для пользователя Popova привилегию SELECT.

Внешний вид закладки Permissions очень похож на одноименную закладку окна свойств таблицы (см. рис. 56). Работа с этими закладками осуществляется одним и тем же способом.
Для достижения того же результата в утилите ISQL требуется выполнить следующий SQL-оператор:
/* Установка привилегии SELECT для
представления Code_books_1_3
пользователю Popova */
GRANT SELECT ON
Stepanov.Code_books_1_3
TO Popova
Теперь пользователь Popova может использовать оператор SELECT для представления Stepanov.Code_books_1_3.
После применения к представлениям операторов INSERT и DELETE количество записей в них изменяется. Тоже самое может произойти при выполнении оператора UPDATE для представлений, использующих указание выборки данных WHERE в базовом операторе. Это может произойти в том случае, когда в результате модификации записей их содержимое перестанет удовлетворять условию WHERE - условию включения данных записей в представление.
Изменение числа записей после операторов INSERT и DELETE очевидно, а после WHERE нет. Пользователь может не иметь никакой информации об условии WHERE. Для контроля за такой ситуации в тексте оператора в конец текст оператора CREATEALTER VIEW следует добавить фразу WITH CHECK OPTION. Тогда при попытке модификации записей представления, которые могут привести к их исключению из ее состава, выдается сообщение о возникновении исключительной ситуации. Покажем это на примере.
Проведем модификацию представления Code_books_1_3. Для этого выполним оператор:
// Модификация представления
UPDATE Stepanov.Code_books_1_3
SET Code_book = 100
WHERE Code_book = 2
Исходное и модифицированное содержимое этого представления приведено в табл. 21, 22.
Таблица 21. Исходное содержимое представления Stepanov.Code_books_1_3


Download 85.96 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling