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
指定檢視名稱,可以選擇使用資料庫名稱限定。
語法:
[ database_name. ] view_name
-
create_view_clauses
這些子句是選擇性的,且順序不敏感。它可以是下列格式。
[ ( column_name [ COMMENT column_comment ], ... ) ]
指定欄位層級的註解。[ COMMENT view_comment ]
指定檢視層級的註解。[ TBLPROPERTIES ( property_name = property_value [ , ... ] ) ]
加入元資料的鍵值對。
-
query 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;