Перейти к основному содержимому

CREATE VIEW

CREATE VIEW создает логическое представление.

Представление, или логическое представление, — это виртуальная таблица, данные которой получаются из запроса к другим существующим физическим таблицам. Поэтому представление не использует физическое хранилище, и все запросы к представлению эквивалентны подзапросам оператора запроса, используемого для создания представления.

Для получения информации о материализованных представлениях, поддерживаемых Selena, см. Синхронные материализованные представления и Асинхронные материализованные представления.

подсказка

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

Синтаксис

CREATE [OR REPLACE] VIEW [IF NOT EXISTS]
[<database>.]<view_name>
(
<column_name>[ COMMENT 'column comment']
[, <column_name>[ COMMENT 'column comment'], ...]
)
[COMMENT 'view comment']
AS <query_statement>

Параметры

ПараметрОписание
OR REPLACEЗаменить существующее представление.
databaseИмя базы данных, в которой находится представление.
view_nameИмя представления. Для соглашений об именовании см. Системные ограничения.
column_nameИмя столбца(ов) в представлении. Обратите внимание, что столбцы в представлении и столбцы, запрашиваемые в query_statement, должны совпадать по количеству.
COMMENTКомментарий к столбцу в представлении или к самому представлению.
query_statementОператор запроса, используемый для создания представления. Это может быть любой оператор запроса, поддерживаемый Selena.

Примечания по использованию

  • Запрос к представлению требует привилегии SELECT на представление и на соответствующие базовые таблицы.
  • Если оператор запроса, используемый для создания представления, не может быть выполнен из-за Schema Change в базовых таблицах, Selena возвращает ошибку при запросе к представлению.

Примеры

Пример 1: Создать представление с именем example_view в example_db с агрегатным запросом к example_table.

CREATE VIEW example_db.example_view (k1, k2, k3, v1)
AS
SELECT c1 as k1, k2, k3, SUM(v1) FROM example_table
WHERE k1 = 20160112 GROUP BY k1,k2,k3;

Пример 2: Создать представление с именем example_view в базе данных example_db с агрегатным запросом к таблице example_table и указать комментарии для представления и каждого столбца в нем.

CREATE VIEW example_db.example_view
(
k1 COMMENT 'first key',
k2 COMMENT 'second key',
k3 COMMENT 'third key',
v1 COMMENT 'first value'
)
COMMENT 'my first view'
AS
SELECT c1 as k1, k2, k3, SUM(v1) FROM example_table
WHERE k1 = 20160112 GROUP BY k1,k2,k3;

Связанные SQL