视图
视图是虚拟的表,本身不包含数据,只包含使用时动态检索数据的查询。
为什么使用视图
- 重用SQL语句
- 简化复杂的SQL操作
- 使用表的组成部分而不是整个表
- 保护数据,可以授予部分访问权限
- 更改数据格式和表示
视图的规则和限制
- 命名唯一(不能与其他视图或表相同)
- 创建数目没有限制
- 需要具备足够的权限才能创建视图
- 视图可以嵌套,利用已有视图来构造新的视图
- 可以使用
ORDER BY
,但原视图查询语句中的ORDER BY
优先级更高 - 不能索引,也不能有关联的触发器或默认值
- 可以和表一起使用
使用视图
创建视图
CREATE VIEW viewname AS select语句
查看创建视图
SHOW CREATE VIEW viewname
删除视图
DROP VIEW viewname
更新视图
- 先
DROP
再CREATE
- 或者,
CREATE OR REPLACE viewname
更新数据
通常,视图是可更新的,如果你对视图增加或删除行,实际上是对其基表增加或删除行。
但是,并非所有视图都是可更新的。如果视图定义中有以下操作,则不能进行视图的更新:
- 分组(使用GROUP BY和HAVING)
- 联结
- 子查询
- 并
- 聚集函数(Min()、Count()、Sum()等)
- DISTINCT
- 导出(计算)列