MySQL——视图

database

注意:视图只适用于MySQL5及之后的版本

为什么使用视图?

  • 重用SQL语句。
  • 简化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。
  • 使用表的组成部分而不是整张表。
  • 保存数据。可以给用户授予表的特定部分的访问权限而不是整张表的访问权限。
  • 更改数据格式和表示。视图可以返回底层表的表示和格式不同的数据。

在创建视图之后,可以使用与基本表相同的方式操作视图。可以对视图执行select操作,过滤和排序数据,将视图联结到和其他视图或表,甚至能添加和更新数据(添加和更新数据存在某些限制)。更重要的是视图仅仅是用来查看存储在别处数据的一种设施。视图本身不包含数据,因为它们返回的数据是从其他表中检索出来的。在添加或更改这些表中的数据时,视图将返回改变过的数据。

性能问题:因为视图不包含数据,所以每次使用视图时,都必须处理查询执行时所需的任何一个检索。如果使用多个联结和过滤创建的视图或者嵌套了视图,可能会发现性能反而下降的很厉害。因此,在部署使用了大量视图的应用前,应该进行测试。

视图的规则和限制

  • 与表一样,视图必须唯一命名(不能与表名或其他视图名一样)
  • 可创建视图的数目没有限制
  • 创建视图必须有足够的访问权限
  • 视图可以嵌套,即可以利用从其他视图中检索数据的查询来构造一个新的视图
  • order by可以用在视图中,但如果select中也包含了order by,那么视图中的order by将会被覆盖
  • 视图不能创建索引,也不能有关联的触发器或默认值
  • 视图可以和表一起使用。

视图的使用

基本语法

//创建视图

CREATE VIEW viewname AS SELECT 。。。。

//查看创建视图

SHOW CREATE VIEW viewname

//删除视图

DROP VIEW viewname

//更新视图,如果视图不存在则创建视图,否则替换原有视图

CREATE OR REPLACE VIEW

利用视图简化复杂的联结

用视图重新格式化检索出的数据

使用视图过滤不想要的数据

使用视图计算字段

通过视图更新数据

通常视图是可以更新的(即可以使用INSERT、UPDAtE和DELETE)。但视图是基于基本表而言的,使用对视图增加或删除行,实际是对其基表的更新。

一般视图用于检索数据,而不用于更新数据。

小结

视图为虚拟表。它包含的不是数据而是根据需要检索数据的查询。视图提供了一种MySQL的SELECT语句层次的封装,可以简化数据处理以及重新格式化基础数据或保存基础数据。

PS:本文章来源于《MySQL必知必会》

以上是 MySQL——视图 的全部内容, 来源链接: utcz.com/z/532240.html

回到顶部