CREATE VIEW
説明
ビューは、SQL
クエリの結果セットに基づいています。CREATE VIEW
は、物理データを持たない仮想テーブルを構築するため、ALTER VIEW
や DROP VIEW
などの他の操作は、メタデータのみを変更します。
構文
CREATE [ OR REPLACE ] [ [ GLOBAL ] TEMPORARY ] VIEW [ IF NOT EXISTS ] view_identifier
create_view_clauses AS query
パラメータ
-
OR REPLACE
同じ名前のビューが既に存在する場合、置き換えられます。
-
[ GLOBAL ] TEMPORARY
TEMPORARY ビューは、セッションスコープであり、基礎となるメタストアでの定義の永続化をスキップするため、セッションが終了すると削除されます(存在する場合)。GLOBAL TEMPORARY ビューはシステムが保持するデータベース
global_temp
に関連付けられています。 -
IF NOT EXISTS
存在しない場合は、ビューを作成します。
-
view_identifier
オプションでデータベース名で修飾できるビュー名を指定します。
Syntax:
[ database_name. ] view_name
-
create_view_clauses
これらの句はオプションで順不同です。以下の形式にすることができます。
[ ( column_name [ COMMENT column_comment ], ... ) ]
は列レベルのコメントを指定します。[ COMMENT view_comment ]
はビューレベルのコメントを作成します。[ TBLPROPERTIES ( property_name = property_value [ , ... ] ) ]
はメタデータのキーと値のペアを追加します。
-
query A SELECT statement that constructs the view from base tables or other views.
例
-- 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;