Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Создание представления для данных нескольких таблиц

Представление можно создать на базе данных нескольких таблиц, используя связи в операторе SELECT. Опция WITH CHECK OPTION будет обсуждаться немного позже. Синтаксис оператора следующий.

CREATE VIEW ИМЯ_ПРЕДСТАВЛЕНИЯ AS

    SELECT * | СТОЛБЕЦ1 [ , СТОЛБЕЦ2 ]

    FROM ИМЯ_ТАБЛИЦЫ1, ИМЯ_ТАБЛИЦЫ2 [ , ИМЯ_ТАБЛИЦЫЗ ]

    WHERE ИМЯ_ТАБЛИЦЫ1 = ИМЯ_ТАБЛИЦЫ2

    [ AND ИМЯ_ТАБЛИЦЫ1 = ИМЯ_ТАБЛИЦЫЗ ]

    [ ВЫРАЖЕНИЕ1 ][, ВЫРАЖЕНИЕ2 ]

    [ WITH CHECK OPTION ]

    [ GROUP BY ]

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

CREATE VIEW EMPLOYEE_SUMMARY AS

      SELECT E.EMP_ID, E.LAST_NAME, P.POSITION, P.DATE_HIRE,

      P. PAY_RATE

      FROM EMPLOYEE_TBL E

      EMPLOYEE_PAY_TBL P 

       WHERE E.EMP_ID = P.EMP_ID;

He забывайте о том, что при выборе данных из нескольких таблиц, таблицы должны быть связанными по общему ключу в выражении ключевого слова WHERE. Представление — это ни что иное, как оператор SELECT, и поэтому таблицы в нем связываются точно так же, как и в обычном операторе SELECT. He забывайте также о пользе псевдонимов, позволяющих упростить вид запроса с множеством таблиц.

Создание представления на основе другого представления

Представление можно создать на основе другого представления с помощью оператора следующего вида.

CREATE VIEW ПРЕДСТАВЛЕНИЕ2 AS 

     SELECT * FROM ПРЕДСТАВЛЕНИЕ1

Уровни зависимости представлений

Новые представления на основе уже созданных можно создавать с достаточной глубиной зависимости (представление на основе представления на основе представления...), определяемой ограничениями конкретной реализации языка. Единственной проблемой при создании новых представлений на основе уже имеющихся является их управляемость. Например, если вы сначала создадите представление VIEW2 на основе представления VIEWI, представление VIEWS на основе представления VIEW2, а затем удалите представление VIEWI, то с представлениями VIEW2 и VIEWS возникнут проблемы, поскольку информация, на которые ссылаются эти представления, будет недоступна. Поэтому необходимо хорошо представлять себе место представлений в базе данных и то, на основе каких объектов эти представления созданы. Зависимость представлений схематически показана на рис. 20.2.

Если представление нужного вида на основе реальной таблицы создать так же легко, как и на основе другого представления, предпочтение следует отдать представлению на основе таблицы.

Рис. 20.2. Схема зависимости представлений

На рис. 20.2 показана схема зависимости представлений, основывающихся не только на таблицах, но и на других представлениях. ПРЕДСТАВЛЕНИЕ1 и ПРЕДСТАВЛЕНИЕ2 зависят от таблицы ТАБЛИЦА. ПРЕДСТАВЛЕНИЕЗ зависит от представления ПРЕДСТАВЛЕНИЕ1. ПРЕДСТАВЛЕНИЕ4 зависит от представлений ПРЕДСТАВЛЕНИЕ1 и ПРЕДСТАВЛЕНИЕ2. ПРЕДСТАВЛЕНИЕ5 зависит от представления ПРЕДСТАВЛЕНИЕ2. На основе анализа зависимостей можно заключить следующее.

• Если удалить ПРЕДСТАВЛЕНИЕ 1, несостоятельными станут ПРЕДСТАВЛЕНИЕЗ и ПРЕДСТАВЛЕНИЕ4. • Если удалить ПРЕДСТАВЛЕНИЕ2, несостоятельными станут ПРЕДСТАВЛЕНИЕ4 и ПРЕДСТАВЛЕНИЕЗ. • Если будет удалена ТАБЛИЦА, несостоятельными станут все представления.