ビューの作成
説明
ビューは、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
一時的なビューはセッションスコープであり、定義が基盤となるメタストア(ある場合)に永続化されることがスキップされるため、セッションが終了するとドロップされます。グローバル一時ビューは、システムで保持される一時データベース
global_temp
に結び付けられています。 -
IF NOT EXISTS
存在しない場合はビューを作成します。
-
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;