Из представления можно удалять строки данных с помощью команды DELETE. При этом действуют те же ограничения, что и в случае применения команд UPDATE и INSERT. По поводу синтаксиса оператора DELETE обратитесь к тексту урока 14.
Представление можно связать с таблицами и другими представлениями. При связывании представлений с таблицами и другими представлениями действуют те же правила, что и при связывании таблиц. По поводу связывания таблиц обратитесь в тексту урока 13, "Объединение таблиц в запросах".
Из представления можно создать таблицу точно так же, как таблицу можно создать из другой таблицы (или представление из другого представления). Синтаксис соответствующего оператора имеет следующий вид.
CREATE TABLE
SELECT {* | СТОЛБЕЦ1 [, СТОЛБЕЦ2 ]}
FROM
[ ORDER BY ]
Для примера создадим представление на основе двух таблиц.
CREATE VIEW ACTIVE_CUSTOMERS AS
SELECT С.*
FROM CUSTOMER_TBL С
ORDERS_TBL О
WHERE C.CUST_ID = O.CUST_ID;
Представление создано.
Теперь создадим таблицу на основе только что созданного представления.
CREATE TABLE CUSTOMER_ROSTER_TBL AS
SELECT CUST_ID, CUST_NAME
FROM ACTIVE_CUSTOMERS;
Таблица создана.
Наконец, выберем данные новой таблицы точно так же, как любой другой.
SELECT *
FROM CUSTOMER_ROSTER_TBL;
CUST_ID CUST_NAME
-----------------------------------
232 LESLIE GLEASON
12 MARYS GIFT SHOP
43 SCHYLERS NOVELTIES
090 WENDY WOLF
287 GAVINS PLACE
432 SCOTTYS MARKET
6 строк выбраны.
He забывайте, что главное различие между таблицей и представлением заключается в том, что таблица содержит реальные данные и занимает физическое пространство, а представление не содержит реальных данных и не требует дополнительного места, кроме места для хранения своего определения (т е соответствующего оператора запроса)
В операторе 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
6 строк выбраны.
Для удаления представлений из базы данных используется команда DROP VIEW. У этой команды есть две опции - RESTRICT и CASCADE. Если используется RESTRICT и в условиях имеются зависимые представления, то оператор DROP VIEW возвращает ошибку. При использовании опции CASCADE и наличии зависимых представлений оператор DROP VIEW завершается успешно и все зависимые представления тоже удаляются. Например,
DROP VIEW NAMES2;
Представление удалено.
Синонимы допускаются целым рядом основных реализаций SQL, но стандартом ANSI SQL синонимы не определяются. Ввиду того, что в ряде основных реализаций SQL синонимы используются, кажется разумным провести здесь их краткое обсуждение. По поводу правильного использования синонимов (если они допускаются вообще) лучше обратиться к документации той реализации языка, которую вы используете.