• 视图


      虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。下面是视图常用的一些应用:

      1.重用SQL语句。

      2.简化复杂的SQL操作。在编写查询后,可以方便的重用它而不必知道它的基本查询细节。

      3.使用表的组成部分而不是全部。

      4.保护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。

      5.更改数据格式和表示。视图可以返回与底层表的表示和格式不同的数据。

      视图创建之后,可以用与表的基本相同的方式利用它们,可以对视图执行SELECT操作、过滤和排序操作,将视图联结到其他视图或者表,甚至可以添加或者更新数据(这个存在限制)。

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

      视图的规则和限制:

      1.与表一样,必须给视图名唯一命名。

      2.对于刻意创建的视图数目没有限制

      3.为了可以创建视图,必须具有足够的访问权限,这些一般都是数据库管理人员授予的。

      4.视图可以嵌套,即可以利用从其他视图中检索的数据的查询来构造一个视图。

      5.ORDER BY可以用在视图中,但如果从该视图检索数据的SELECT语句中也包含ORDER BY,那么该视图中的ORDER BY将覆盖。

      6.视图不能索引,也不能有关联的触发器和默认值。

      7.视图可以和表一起使用。

      视图的使用:

      1.使用:CREATE VIEW语句来创建。

      2.使用SHOW CREATE VIEW viewname,来查看创建视图的语句。

      3.用DROP删除视图,其语法为DROP VIEW viewname.

      4.更新视图时,可以先用DROP再用CREATE,也可以直接用CREATE ORREPLACE VIEW。如果要更新的视图不在,则第2条更新语句会创建一个视图;如果要更新的视图存在,则第2条更新语句会替换原有视图。

      更新视图:

      通常视图是可以更新的(即,可以对它们使用INSERT、UPDATE和DELETE)。更新一个视图将更新其基表(视图本身没有数据)。如果对视图增加或者删除行,实际上是对基表增加或者删除行。

      但是,并非所有的视图都是可以更新的。基本上可以说,如果MySQL不能正确的确定被更新的基数据,则不允许更新(包括插入和删除)。这实际意味着,如果视图定义中存在以下操作,则不能对视图进行更新:

      1.分组(使用GROUP BY和HAVING)

      2.联结;

      3.子查询;

      4.并;

      5.聚集函数(Min()、Count()、Sum()等);

      6.DISTINCT();

      7.导出(计算)列;

      这些听上去好像是一个严重的限制,但实际不是,因为视图主要是用来数据检索。

  • 相关阅读:
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    2013551822第一次作业
    第八次作业
    第七次作业
    第六次作业
    第五次作业
    第四次作业
  • 原文地址:https://www.cnblogs.com/luoshengjie/p/10144932.html
Copyright © 2020-2023  润新知