视图本身是一个虚拟表,不存放任何数据。在使用SQL语句访问视图的时候,它返回的数据是MySQL从其他表中生成的。视图和表在同一个命名空间,
MySQL在很多地方对于视图和表是同样对待的。不过视图和表也有不同。例如,不能在视图上创建触发器,也不能用DROP TABLE命令删除视图。
视图的实现算法:
合并算法:merge
临时表算法:tmptable
可更新视图(updatable view):可以通过更新视图来更新视图涉及的相关表。
如果视图定义中包含了group by 、union、聚合函数、以及其他一些特殊情况,就不能被更新了。更新视图的查询也可以是一个关联语句,但是有一个限制,被更新的列必须来自同一个表中。另外,所有使用临时表算法实现的视图都无法被更新。
check option:表示任何通过视图更新的行,都必须符合视图本身的where条件定义。
MySQL不支持在视图上创建索引。
MySQL不支持在视图上建任何触发器。