- •254 Понимание sql
- •256 Понимание sql
- •258 Понимание sql
- •260 Понимание sql
- •262 Понимание sql
- •266 Понимание sql
- •268 Понимание sql
- •270 Понимание sql
- •272 Понимание sql
- •274 Понимание sql
- •276 Понимание sql
- •278 Понимание sql
- •280 Понимание sql
- •282 Понимание sql
- •284 Понимание sql
- •286 Понимание sql
- •288 Понимание sql
- •290 Понимание sql
- •292 Понимание sql
- •294 Понимание sql
- •Глава 23 продолжит обсуждение о выводах в sql, таких как сохранение
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
КТО ЧТО МОЖЕТ ДЕЛАТЬ
В БАЗЕ ДАННЫХ
