CREATE VIEW
语法
CREATE [ OR REPLACE ] VIEW view_name [(column_name [COMMENT 'column_comment'][, ...])] [COMMENT 'view_comment'] [TBLPROPERTIES (property_name = property_value)] AS query
限制
仅Hive数据源的Catalog支持视图的列描述。
在HetuEngine中创建的视图,视图的定义以编码方式存储在数据源里。在数据源可以查询到该视图,但无法对该视图执行操作。
视图是只读的,不可对它执行LOAD、INSERT操作。
视图可以包含ORDER BY和LIMIT子句,如果关联了该视图的查询语句也包含了这些子句,那么查询语句中的ORDER BY和LIMIT子句将以视图的结果为基础进行运算。
描述
使用SELECT查询结果创建新视图。视图是一个逻辑表,可以被将来的查询所引用,视图中没有数据。该视图对应的查询在每次被其他查询引用该视图时都会被执行。
如果视图已经存在,则可选ORREPLACE子句将导致视图被替换,而不会报错。
示例
- 通过表orders创建一个视图test:
CREATE VIEW test (oderkey comment 'orderId',orderstatus comment 'status',half comment 'half') AS SELECT orderkey, orderstatus, totalprice / 2 AS half FROM orders;
- 通过表orders的汇总结果创建视图orders_by_date:
CREATE VIEW orders_by_date AS SELECT orderdate, sum(totalprice) AS price FROM orders GROUP BY orderdate;
- 创建一个新视图来替换已经存在的视图:
CREATE OR REPLACE VIEW test AS SELECT orderkey, orderstatus, totalprice / 4 AS quarter FROM orders
- 创建一个视图的同时设置表属性:
create or replace view view1 comment 'the first view' TBLPROPERTIES('format'='orc') as select * from fruit;
注意事项
当使用alter修改创建视图所依赖的表时,需要重新创建视图,否则再次查询视图会报错。