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

Представления и выражение order by

В операторе CREATE VIEW использовать ключевое слово ORDER BY нельзя, но в операторе CREATE VIEW можно использовать ключевое слово GROUP BY, дающее тот же результат, что и ORDER BY.

Использовать выражение ключевого слова ORDER BY в операторе SELECT, осуществляющем запрос к представлению, выгоднее и проще, чем использовать GROUP BY в операторе CREATE VIEW.

Рассмотрим следующий пример использования ключевого слова GROUP BY в операторе CREATE VIEW.

CREATE VIEW NAMES2 AS

      SELECT LAST_NAME || ', ' || FIRST_NAME || ' ' || MIDDLE_NAME

      NAME

      FROM EMPLOYEE_TBL

      GROUP BY LAST_NAME || ', ' || FIRST_NAME || ' ' ||

      MIDDLE_NAME;

Теперь если выбрать все данные только что созданного представления, они будут представлены в алфавитном порядке (поскольку данные были сгруппированы по

SELECT *  FROM NAMES2;

NAME

        ------------------------

        GLASS, BRANDON S 

         GLASS, JACOB 

        PLEW, LINDA С 

        SPURGEON, TIFFANY 

        STEPHENS, TINA D 

        WALLACE, MARIAH

       

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

Для удаления представлений из базы данных используется команда DROP VIEW. У этой команды есть две опции — RESTRICT и CASCADE. Если используется RESTRICT и в условиях имеются зависимые представления, то оператор DROP VIEW возвращает ошибку. При использовании опции CASCADE и наличии зависимых представлений оператор DROP VIEW завершается успешно и все зависимые представления тоже удаляются. Например,

DROP VIEW NAMES2;

Что такое синонимы? (InterBase не поддержвается)

Синоним — это просто другое имя для таблицы или представления Синонимы обычно создаются таким образом, чтобы пользователь имел возможность не указывать полное имя таблицы или представления другого пользователя. Синонимы можно создавать с атрибутами PUBLIC или PRIVATE. Синоним с атрибутом PUBLIC может использоваться всеми пользователями базы данных, а синоним с атрибутом PRIVATE — только владельцем и теми пользователями, кому были даны соответствующие привилегии.

Синонимы допускаются целым рядом основных реализаций SQL, но стандартом ANSI SQL синонимы не определяются. Ввиду того, что в ряде основных реализаций SQL синонимы используются, кажется разумным провести здесь их краткое обсуждение. По поводу правильного использования синонимов (если они допускаются вообще) лучше обратиться к документации той реализации языка, которую вы используете.

Управление синонимами

Управление синонимами обычно осуществляет администратор базы данных (или другое уполномоченное лицо) или конкретные пользователи. Ввиду существования двух типов синонимов (PUBLIC и PRIVATE), для их создания могут потребоваться привилегии разного уровня доступа к системе. Любой пользователь имеет возможность создавать синонимы с атрибутом PRIVATE. Право создавать синонимы с атрибутом PUBLIC обычно имеется у администратора или привилегированных пользователей базы данных. По поводу требуемых для создания синонимов привилегий обратитесь к документации той реализации языка, которую вы используете.

Создание синонимов

Общий синтаксис оператора для создания синонимов следующий (в InterBase не используется).

CREATE [PUBLIC]PRIVATE] SYNONYM ИМЯ_СИНОНИМА FOR  ТАБЛИЦА |ПРЕДСТАВЛЕНИЕ

В следующем примере создается синоним с именем CUST для таблицы CUSTOMER_TBL. Это позволит не печатать полное имя таблицы каждый раз при ее использовании.

CREATE SYNONYM CUST FOR CUSTOMER_TBL;

SELECT CUST_NAME FROM CUST;

Обычно владельцы таблиц, доступ к которым разрешается другим пользователям, создают для таких таблиц синонимы, чтобы другим пользователям не приходилось печатать полное имя таблицы с указанием владельца.

CREATE SYNONYM PRODUCTS_TBL FOR USER1.PRODUCTS_TBL;