更新时间:2024-07-24 GMT+08:00

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修改创建视图所依赖的表时,需要重新创建视图,否则再次查询视图会报错。