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

CREATE VIEW

Описание​

Эта инструкция используется для создания логического представления на основе указанного запроса.

Синтаксис​

CREATE VIEW [IF NOT EXISTS] [<db_name>.]<view_name>
[(<column_definition>)]
[AS] <query_stmt>

Где:

column_definition:
<column_name> [COMMENT '<comment>'] [,...]

Обязательные параметры​

1. <view_name>

Идентификатор (то есть имя) представления; он должен быть уникальным в базе данных, в которой создаётся представление.
Идентификатор должен начинаться с буквы (если включена поддержка имён в Unicode, это может быть символ любого языка) и не может содержать пробелы или специальные символы, если только вся строка идентификатора не заключена в обратные кавычки (например, My View).
В качестве идентификатора нельзя использовать зарезервированные ключевые слова.
Подробнее см. требования к идентификаторам и зарезервированные ключевые слова.

2. <query_stmt>

Запрос SELECT, определяющий представление.

Необязательные параметры​

1. <db_name>

Имя базы данных, в которой находится представление. Если не указано, по умолчанию используется текущая база данных.

2. <column_definition>

Определения столбцов представления.
Где:
1. <column_name>
Имя столбца.
2. <comment>
Комментарий к столбцу.

Требования к управлению доступом​

ПривилегияОбъектПримечания
CREATE_PRIVБаза данныхДля базы данных требуется привилегия CREATE_PRIV.
SELECT_PRIVТаблица, представлениеДля таблиц, представлений или материализованных представлений, к которым выполняется запрос, требуется привилегия SELECT_PRIV.

Примечания​

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

Примеры​

  1. Создание представления example_view в базе данных example_db

    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. Создание представления с определениями столбцов

    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;