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;

См. также#

ALTER VIEW, DROP VIEW, SHOW CREATE VIEW