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

Представления создаются с помощью команды CREATE VIEW. Представление можно создать на базе данных одной или нескольких таблиц, а также других представлений. Чтобы создать представление, пользователь должен иметь соответствующие привилегии доступа к системе, зависящие от реализации языка.

Базовый синтаксис оператора CREATE VIEW следующий.

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

[ИМЯ_СТОЛБЦА [, ИМЯ_СТОЛБЦА]]

AS

{ОПЕРАТОР SELECT}

WITH [CASCADED | LOCAL] CHECK OPTION]

Примеры различных способов создания представлений с помощью оператора CREATE VIEW обсуждаются в следующих разделах.

В ANSI SQL никакого стандарта для оператора ALTER VIEW не предусматривается.

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

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

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

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

FROM ИМЯ_ТАБЛИЦЫ

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

[ WITH CHECK OPTION ]

[ GROUP BY ]

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

CREATE VIEW CUSTOMERS AS SELECT * FROM CUSTOMER_TBL;

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

CREATE VIEW EMP_VIEW AS

SELECT LAST_NAME, FIRST_NAME, MIDDLE_NAME

FROM EMPLOYEE_TBL;

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

CREATE VIEW CITY_PAY AS

SELECT E.CITY, AVG (P.PAY_RATE) AVG_PAY

FROM EMPLOYEE_TBL E

EMPLOYEE_PAY_TBL P

WHERE E.EMP_ID = P.EMP_ID

GROUP BY E.CITY;

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

SELECT * FROM CITY_PAY;

CITY AVG_PAY

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

GREENWOOD

INDIANAPOLIS 13.33333

WHITELAND

После создания представления его использование в операторах SELECT позволяет их значительно упростить.

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

Представление можно создать на базе данных нескольких таблиц, используя связи в операторе 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 забывайте также о пользе псевдонимов, позволяющих упростить вид запроса с множеством таблиц.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: