在本教程中,您将了解MySQL视图。 我们将讲解和演示如何在MySQL实现视图。
从MySQL5.x版本开始,MySQL支持数据库视图。在MySQL中,几乎视图的特性符合SQL: 2003标准。 MySQL以两种方式处理视图的查询:
- 第一种方式,MySQL基于视图定义语句创建一个临时表,并对该临时表执行传入查询。
- 第二种方式,MySQL将传入查询与定义视图的查询组合到一个查询中,并执行组合查询。
MySQL支持的视图版本系统。每次更改或替换视图时,视图的副本都将存储在位于特定数据库文件夹中的arc(archive)文件夹中。则备份文件的名称为view_name.frm-00001
。如果然后再次更改视图,MySQL将创建一个名称为view_name.from-00002
的新备份文件。
MySQL允许您基于其他视图创建视图。 在视图定义的SELECT语句中,可以引用另一个视图。
MySQL视图的限制
不能在视图上创建索引。当您对使用合并算法的视图查询数据时,MySQL使用基础表的索引。对于使用临时表算法的视图,在根据视图查询数据时不会使用索引。
MySQL 5.7.7版本之前不能在SELECT语句的FROM子句中使用子查询来定义视图。
如果删除或重命名视图所基于的表,MySQL不会发出任何错误。但是,MySQL确实使视图无效了。 您可以使用CHECK TABLE
语句检查视图是否有效。
一个简单的视图可以更新的。基于连接,子查询等的复杂SELECT语句创建的视图不可更新的。
MySQL不支持物化视图像其他数据库系统,如Oracle,PostgreSQL等。
相关教程
MySQL学习QQ群:418407075