
# 创建视图
#### 功能描述
创建视图。
#### 语法格式
```
CREATE [OR REPLACE] VIEW view_name
   [WITH SCHEMA { BINDING | COMPENSATION | EVOLUTION | TYPE EVOLUTION }]
   AS select_statement;
```
#### 关键字
- CREATE VIEW：基于给定的select语句创建视图，不会将select语句的结果写入磁盘。
- OR REPLACE：指定该关键字后，若视图已经存在将不报错，并根据select语句更新视图的定义。
- WITH SCHEMA：指定视图的Schema管理策略。
- BINDING：严格绑定，底层表结构变化时视图失效。
- COMPENSATION：补偿模式（默认），容忍列类型变化。
- EVOLUTION：演进模式，自动跟随底层表Schema变化。
- TYPE EVOLUTION：类型演进，仅限列类型演进。
 
#### 注意事项
- 所要创建的视图必须是当前数据库下不存在的，否则会报错。当视图存在时，可通过增加OR REPLACE关键字来避免报错。
- 视图中包含的表或视图信息不可被更改，如有更改可能会造成查询失败。
- 如果创建表和创建视图使用的计算引擎不一致，可能会因为varchar类型不兼容，导致视图查询失败。
 
#### 示例
先通过对student表中的id和name数据进行查询，并以该查询结果创建视图student_view。
```
CREATE VIEW student_view AS SELECT id, name FROM student;
```
创建带Schema演进策略的视图：
```
CREATE VIEW student_view WITH SCHEMA EVOLUTION AS SELECT id, name FROM student;
```
