CREATE VIEW#
Синтаксис#
CREATE [ OR REPLACE ] VIEW view_name
[ COMMENT view_comment ]
[ SECURITY { DEFINER | INVOKER } ]
AS query
Описание#
Создает новое представление. При выполнении запроса к представлению,
обращение к представлению будет заменено запросом, указанным в команде
CREATE VIEW
. Необязательное выражение OR REPLACE
заменяет
существующее представление с таким же именем.
Безопасность#
Представление может быть создано с двумя режимами безопасности:
DEFINER
(значение по умолчанию) и INVOKER
.
В режиме безопасности DEFINER
доступ к таблицам, использованным в
представлении, осуществляется с использованием разрешений пользователя,
создавшего преставление. Это позволяет предоставлять ограниченный доступ
к базовым таблицам, к которым текущему пользователю может быть запрещен
прямой доступ.
В режиме безопасности INVOKER
доступ к таблицам, использованным в
представлении, осуществляется с использованием разрешений пользователя,
выполняющего запрос.
Примеры#
Создает представление test
для таблицы orders
:
CREATE VIEW test AS
SELECT orderkey, orderstatus, totalprice / 2 AS half
FROM orders;
Создает представление test_with_comment
с комментарием:
CREATE VIEW test_with_comment
COMMENT 'A view to keep track of orders.'
AS
SELECT orderkey, orderstatus, totalprice
FROM orders;
Создает представление orders_by_date
, которое группирует строки из
таблицы orders
по атрибуту orderdate
:
CREATE VIEW orders_by_date AS
SELECT orderdate, sum(totalprice) AS price
FROM orders
GROUP BY orderdate;
Создает представление, которое заменяет существующее:
CREATE OR REPLACE VIEW test AS
SELECT orderkey, orderstatus, totalprice / 4 AS quarter
FROM orders;