Скачиваний:
17
Добавлен:
01.04.2014
Размер:
137.73 Кб
Скачать

276 Понимание sql

______________________________________________________________________

ГЛ. 21

самом представлении с помощью предложения WITH CHECK OPTION

в определении представления. Вы можете также использовать WITH

CHECK OPTION как один из способов ограничения в базовой таблице.

В автономных запросах, вы обычно используете один или более столб-

цов в предикате не представленых среди выбранных для вывода, что

не вызывает никаких проблем. Но если эти запросы используются в

модифицируемых представлениях, появляются проблемы, так как эти

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

мых в них строк.

Вы видели некоторые подходы к этим проблемам.

В Главах 20 И 21, мы говорили, что представления имеют прикладные

программы защиты. Вы можете позволить пользователям обращаться к

представлениям не разрешая в тоже время обращаться к таблицам в

которых эти представления непосредственно находятся. Глава 22 будет

исследовать вопросы доступа к объектам данных в SQL.

ИЗМЕНЕНИЕ ЗНАЧЕНИЙ С ПОМОЩЬЮ ПРЕДСТАВЛЕНИЯ 277

______________________________________________________________________

************** РАБОТА С SQL **************

1. Какое из этих представлений - модифицируемое ?

#1 CREATE VIEW Dailyorders

AS SELECT DISTINCT cnum, snum, onum,

odate

FROM Orders;

#2 CREATE VIEW Custotals

AS SELECT cname, SUM (amt)

FROM Orders, Customers

WHERE Orders.cnum = customer.cnum

GROUP BY cname;

#3 CREATE VIEW Thirdorders

AS SELECT *

FROM Dailyorders

WHERE odate = 10/03/1990;

#4 CREATE VIEW Nullcities

AS SELECT snum, sname, city

FROM Salespeople

WHERE city IS NULL

OR sname BETWEEN 'A' AND 'MZ';

2. Создайте представление таблицы Продавцов с именем Commissions

(Комиссионные). Это представление должно включать только поля

comm и snum. С помощью этого представления, можно будет вводить

или изменять комиссионные, но только для значений между .10 и .20.

3. Некоторые SQL реализации имеют встроенную константу представля-

ющую текущую дату, иногда называемую " CURDATE ".

Слово CURDATE может следовательно использоваться в операторе SQL,

и заменяться текущей датой, когда его значение станет доступным с по-

мощью таких команд как SELECT или INSERT. Мы будем использовать

представление таблицы Порядков с именем Entryorders для вставки строк

278 Понимание sql

______________________________________________________________________

ГЛ. 21

в таблицу Порядков. Создайте таблицу порядков, так чтобы CURDATE

автоматически вставлялась в поле odate если не указано другого значе-

ния. Затем создайте представление Entryorders, так чтобы значения не

могли быть указаны.

( См. Приложение A для ответов. )

22

КТО ЧТО МОЖЕТ ДЕЛАТЬ

В БАЗЕ ДАННЫХ

Соседние файлы в папке ПОНИМАНИЕ SQL