Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Удаление представлений (оператор drop view)

Представление удаляется из базы данных с помощью оператора DROP VIEW, имеющего следующий формат:

VIEW ViewName [RESTRICT j CASCADE]

При выполнении оператора DROP VIEW определение представления удаляется из базы данных.

Если указано ключевое слово CASCADE, при выполнении оператора DROP VIEW будут также удалены все связанные с ним или зависящие от него объекты. Другими словами, будут удалены все объекты, содержащие ссылки на удаляемое представление. Это означает, что такой оператор DROP VIEW удаляет также все представления, которые определены на основе удаляемого представления. Если указывается ключевое слово RESTRICT и существуют любые прочие объекты, зависящие от существования удаляемого представления, выполнение этого оператора блокируется. По умолчанию принимается значение RESTRICT.

Замена представлений

Для иллюстрации процесса замены представления оператором SQL рассмотрим приведенный ниже запрос, предназначенный оценок, которые получил каждый из студентов, имеющим средний балл 3,8. Этот запрос обращается к представлению СтудентУспевCnt, определение которого приведение в описании примера 6:

SELECT НС, count

FROM СтудентУспевCnt

WHERE СРБАЛЛ = '3,8'

ORDER BY НС;

Замена представления заключается в слиянии приведенного выше запроса с определяющим запросом представления СтудентУспевCnt и выполняется следующим образом:

1. Имена столбцов, указанные в списке конструкции SELECT запроса, преобразуются в соответствующие им имена столбцов определяющего запроса.

SELECT s.НС AS НС, COUNT ( * ) AS count

2. Имена представлений, указанные в конструкции FROM запроса, замещаются соответствующими списками из конструкций FROM определяющего запроса:

FROM Студент s, Успеваемость у

3. Конструкция WHERE исходного запроса пользователя объединяется с конструкцией WHERE из определяющего запроса представления с помощью логического оператора AND:

WHERE s.НС = у.НС AND СРБАЛЛ = '3,8'

4. Конструкции GROUP BY и HAVING из определяющего запроса представления просто копируются в исходный запрос. В нашем примере в определяющем запросе присутствует только конструкция GROUP BY:

GROUP BY s.НС, у.НГ;

5. В объединенный запрос копируется конструкция ORDER BY из исходного запроса, в котором имена столбцов представления преобразованы в имена столбцов определяющего запроса:

ORDER BY НС;

6. В результате всех перечисленных выше операций объединенный запрос приобретает следующий вид:

SELECT s.НС AS НС, COUNT ( * ) AS count

FROM Студент s, Успеваемость у

WHERE s.НС = у.НС AND СРБАЛЛ = '3,8'

GROUP BY s.НС, у.НГ;

ORDER BY НС;

Таблица 7.2.7. Результирующая таблица запроса, полученного в результате замены представления

Ном. студента

Номер группы

count

12

ТМ-31

1

19

ТЗ-31

1

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

Стандарт ISO налагает несколько важных ограничений на создание и использование представлений, хотя в этом отношении между разными диалектами языка SQL существуют значительные отличия.

  • Если столбец в представлении создается с использованием агрегирующей функции, он может указываться только в конструкциях SELECT и ORDER BY тех запросов, в которых осуществляется доступ к данному представлению. В частности, подобный столбец не может использоваться в конструкции WHERE, а также не может быть параметром в агрегирующей функции любого из запросов, основанного на данном представлении.

  • Сгруппированное представление никогда не должно соединяться с таблицами базы данных или другими представлениями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]