一、语法
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 EXTERNAL TABLE base_emp_table (id INT, name STRING, working_years INT) USING PARQUET LOCATION 'cosn://<your_bucket_name>/test_create_view/base_emp_table';INSERT INTO base_emp_table VALUES (1, 'Alice', 8), (2, 'Bob', 3), (3, 'Charlie', 12);– 创建视图CREATE VIEW test_view1 AS SELECT id, name FROM base_emp_table WHERE working_years > 5;– 创建或替换视图(带注释)CREATE OR REPLACE VIEW test_view1 (ID COMMENT 'Unique ID', Name) COMMENT 'Experienced employees' AS SELECT id, name FROM base_emp_table WHERE working_years > 5;– IF NOT EXISTSCREATE VIEW IF NOT EXISTS test_view2 AS SELECT * FROM base_emp_table;– TEMPORARY 视图CREATE TEMPORARY VIEW test_view3 AS SELECT id, name FROM base_emp_table;– GLOBAL TEMPORARY 视图CREATE GLOBAL TEMPORARY VIEW test_global_view AS SELECT * FROM base_emp_table;– 查询视图SELECT * FROM test_view1;SELECT * FROM global_temp.test_global_view;– 描述视图DESCRIBE TABLE EXTENDED test_view1;