CREATE VIEW
CREATE VIEW
本命令用于基于对一个或多个现有表的查询结果,在当前或指定的 SCHEMA 中创建一个新的视图。视图像一个保存好的 SQL 查询快捷方式,本身不存数据,每次查询时实时执行底层 SQL。
语法
参数说明
- OR REPLACE:替换同名的已存在视图(如果存在)。不能与
同时使用。效果等同于先IF NOT EXISTS
再重新创建。DROP VIEW - IF NOT EXISTS:如果同名视图已存在,则跳过创建,不报错。不能与
同时使用。OR REPLACE - column_name:为视图列指定别名或添加注释。列数量和顺序须与
的输出列一一对应。query - COMMENT:为视图添加描述信息,便于其他用户了解视图用途。
- query:定义视图内容的 SQL 查询语句。
使用示例
示例 1:创建基础过滤视图
创建一个只包含高价值订单(金额大于 500)的视图:
查询视图:
返回结果:
示例 2:创建带列注释和视图注释的视图
查询视图:
返回结果:
示例 3:使用 OR REPLACE 更新视图定义
在已有视图基础上增加
status 列:
示例 4:在指定 SCHEMA 中创建视图
示例 5:删除视图
注意事项
与OR REPLACE
不能同时使用。IF NOT EXISTS- 视图不存储数据,每次查询视图时都会实时执行底层 SQL,查询性能取决于底层表的数据量和查询复杂度。
- 删除底层表后,依赖该表的视图查询将报错。
- 视图删除后无法通过
恢复,删除前请保存创建语句(可用UNDROP
获取)。SHOW CREATE TABLE <view_name>
视图 vs 动态表 vs 物化视图
| 对象 | 适用场景 |
|---|---|
| VIEW(视图) | 封装常用查询逻辑,每次查询实时计算,无额外存储开销 |
| Dynamic Table(动态表) | 需要预计算结果以加速查询,支持增量刷新,适合中等延迟的数据加工 |
| Materialized View(物化视图) | 需要将查询结果持久化存储,适合高频访问的聚合或复杂计算场景 |
相关命令
- DROP VIEW:删除视图
- SHOW TABLES WHERE is_view=true:列出所有视图
- SHOW CREATE TABLE:查看视图的创建语句
- 视图与物化视图:视图和物化视图的使用场景对比、查询加速的典型模式
联系我们
