MySQL学习入门教程:视图的实现和限制

2018-11-3009:08:03数据库教程Comments2,103 views字数 673阅读模式

本教程中,您将了解MySQL视图,我们将解释并演示MySQL如何实现视图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

MySQL 5.x 版本之后支持数据库视图。 在MySQL中,视图的几乎特征符合SQL:2003标准。 MySQL以两种方式处理对视图的查询:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

  • 第一种方式,MySQL会根据视图定义语句创建一个临时表,并在此临时表上执行传入查询。
  • 第二种方式,MySQL将传入查询与查询定义为一个查询并执行组合查询。

MySQL支持版本系统的视图。每次视图被更改或替换时,视图的副本将在驻留在特定数据库文件夹的arc(archive)文件夹中备份。备份文件的名称为view_name.frm-00001。如果再次更改视图,MySQL将创建一个名为view_name.frm-00002的新备份文件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

MySQL允许基于其他视图创建视图。在视图定义的SELECT语句中,可以引用另一个视图。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

MySQL视图的限制

不能在视图上创建索引。当使用合并算法的视图查询数据时,MySQL会使用底层表的索引。对于使用诱惑算法的视图,当您针对视图查询数据时,不会使用索引。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

MySQL 5.7.7之前版本,是不能在SELECT语句的FROM子句中使用子查询来定义视图的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

如果删除或重命名视图所基于的表,则MySQL不会发出任何错误。但是,MySQL会使视图无效。 可以使用CHECK TABLE语句来检查视图是否有效。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

一个简单的视图可以更新表中数据。基于具有连接,子查询等的复杂SELECT语句创建的视图无法更新。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

MySQL不像:Oracle,PostgreSQL等其他数据库系统那样支持物理视图,MySQL是不支持物理视图的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

 文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/8415.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/8415.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定