Примеры различных способов создания представлений с помощью оператора CREATE VIEW обсуждаются в следующих разделах.
В ANSI SQL никакого стандарта для оператора ALTER VIEW не предусматривается.
Представление может быть создано на основе данных одной таблицы. Синтаксис соответствующего оператора следующий (указанная здесь опция WITH CHECK OPTION будет обсуждаться чуть позже).
CREATE VIEW
SELECT * |
FROM
[ WHERE
[ 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;
Представление создано.
Из следующего примера видно, каким образом в представлении можно преобразовать данные столбцов таблицы. В этом представлении для столбца вывода в операторе SELECT назначается псевдоним NAME.
CREATE VIEW NAMES AS
SELECT LAST_NAME || ', ' || FIRST_HAME || ' ' || MIDDLE_NAME
NAME
FROM EMPLOYEE_TBL;
Представление создано.
Теперь выберем все данные только что созданного представления с именем NAMES.
SELECT *
FROM NAMES;
NAME
--------------
STEPHENS, TINA D
PLEW, LINDA С
GLASS, BRANDON S
GLASS, JACOB
WALLACE, MARIAH
SPURGEON, TIFFANY
6 строк выбраны.
Из следующего примера видно, как создаются представления на основе одной или нескольких таблиц с подведением итогов.
CREATE VIEW CITY_PAY AS
SELECT E.CITY, AVG(P.PAY_RATE) AVG_PAY
FROM EMPLOYEEJTBL E
EMPLOYEE_PAY_TBL P
WHERE E.EMP_ID = P.EMP_ID
GROUP BY E.CITY;
Представление создано.
Теперь выберем данные только что созданного представления.
SELECT *
FROM CITYJPAY;
CITY AVG_PAY
--------------------------
GREENWOOD
INDIANAPOLIS 13.33333
WHITELAND
3 строки выбраны.
После создания представления его использование в операторах SELECT позволяет их значительно упростить.
Представление можно создать на базе данных нескольких таблиц, используя связи в операторе SELECT. Опция WITH CHECK OPTION будет обсуждаться немного позже. Синтаксис оператора следующий.
CREATE VIEW
SELECT * |
FROM
WHERE
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 EMPLOYEEJTBL E
EMPLOYEE_PAY_TBL P
WHERE E.EMP_ID = P.EMP_ID;
Представление создано.
He забывайте о том, что при выборе данных из нескольких таблиц, таблицы должны быть связанными по общему ключу в выражении ключевого слова WHERE. Представление - это ни что иное, как оператор SELECT, и поэтому таблицы в нем связываются точно так же, как и в обычном операторе SELECT. He забывайте также о пользе псевдонимов, позволяющих упростить вид запроса с множеством таблиц.
Представление можно создать на основе другого представления с помощью оператора следующего вида.
CREATE VIEW ПРЕДСТАВЛЕНИЕ2 AS
SELECT * FROM ПРЕДСТАВЛЕНИЕ1