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