CREATE VIEW

Конструирует виртуальную таблицу, не имеющую физических данных, на основе результирующего набора SQL-запроса. ALTER VIEW и DROP VIEW изменять только метаданные.

Синтаксис

CREATE [ OR REPLACE ] [ [ GLOBAL ] TEMPORARY ] VIEW [ IF NOT EXISTS ] view_identifier
    create_view_clauses AS query

Параметры

  • ИЛИ ЗАМЕНИТЕ

    Если представление с таким именем уже существует, оно заменяется на.

  • ГЛОБАЛЬНОГО СОХРАНЕННЫЕ

    ВРЕМЕННЫЕ представления находятся в области сеанса и удаляются, когда сеанс завершается, поскольку он пропускает сохранение определения в базовом хранилище метаданных, если таковое имеется. Глобальные временные представления привязаны к временной базе данных, сохраненной системой global_temp .

  • ЕСЛИ НЕ СУЩЕСТВУЕТ

    Создает представление, если оно не существует.

  • view_identifier

    Имя представления, при необходимости дополненное именем базы данных.

    Синтаксис:[database_name.] view_name

  • create_view_clauses

    Эти предложения являются необязательными и не учитывают порядок. Он может иметь следующие форматы.

    • [ ( column_name [ COMMENT column_comment ], ... ) ] для указания комментариев на уровне столбцов.
    • [ COMMENT view_comment ] для указания комментариев на уровне представления.
    • [ TBLPROPERTIES ( property_name = property_value [ , ... ] ) ] для добавления пар "ключ-значение" метаданных.
  • запрос Инструкция SELECT , которая формирует представление из базовых таблиц или других представлений.

Примеры

-- Create or replace view for `experienced_employee` with comments.
CREATE OR REPLACE VIEW experienced_employee
    (ID COMMENT 'Unique identification number', Name)
    COMMENT 'View for experienced employees'
    AS SELECT id, name FROM all_employee
        WHERE working_years > 5;

-- Create a global temporary view `subscribed_movies` if it does not exist.
CREATE GLOBAL TEMPORARY VIEW IF NOT EXISTS subscribed_movies
    AS SELECT mo.member_id, mb.full_name, mo.movie_title
        FROM movies AS mo INNER JOIN members AS mb
        ON mo.member_id = mb.id;