下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

创建View视图

作者:课课家教育     来源: http://www.kokojia.com点击数:1417发布时间: 2016-11-13 17:16:31

标签: mysqlmysql教程mysql数据库

  视图不是实体的数据表,但却能够把相关联的表的数据汇集到一个"表"当中,你可以一次查出所需数据,并且操作方便,就像从一个表中查出数据一样。视图View有两个基本功能。首先,它可以简化查询,把复杂的查询结果集储存为视图,还可以简化查询语句,然后,它还可以对权限进行控制,可以只开放表中一部分列数据储存为视图,就能隐藏不想让外部看到的信息。

  (一)创建视图

  View能够储存Select查询语句,在Select视图时,其实就是调用该查询语句:

创建View视图_mysql_mysql教程_mysql数据库_课课家

创建视图

  (二)视图管理

  从上例可知,View视图出现在showtables里,那名字对应的是视图,还是完整的表呢?

  (1)通过showtablestatus判断到底是view还是table。

通过showtablestatus判断到底是view还是table

  (2)修改视图:

  修改真实的表数据会影响视图的显示,由于视图是真实表的投影。相反,视图的修改可能有两种情况,要是视图和真实表一一对应,那就能通过修改视图来修改真实表数据,要是视图是真实表的几列通过计算得到的结果集,就不可以随意对视图进行修改,如下例:

修改视图

修改视图

  注意:上例出现了一些查询语句以及运算函数。现在我们只要明白在什么情况下视图是可修改以及对可修改视图的修改会被写入原表就可以了。

  (3)删除视图,用drop,跟删除表相同:

 删除视图

  (三)视图算法简述

  事实上,view只储存了创建时的查询语句,在对视图再次筛选查询时,数据库就会根据创建视图时复杂度自动选择用什么算法执行查询,通常有两种:merge算法以及temptable算法。

视图算法

  (1)merge算法

  把存储的视图查询语句与第二次对视图本身的查询语句进行合并,即merge,以下:

视图算法简述

  (2)temptable算法

  通常,创建视图时语句较为复杂,如v3,事实上会比这更复杂,对这种视图查询的时后,数据库就会用temptable算法查询。

  首先,temptable算法把声明v3时的select语句在内存中运行,就会得到结果集表,然后对内存当中的结果集表进行二次查询,如下:

temptable算法

  总结:这就是不同的复杂程度下,我们来查询视图,数据库有可能会做出的两种查询算法的选择。大家可以根据不同的情况来选择不同的的查询算法。希望这篇教程大家会喜欢。

赞(21)
踩(0)
分享到:
上一篇:设置储存引擎
华为认证网络工程师 HCIE直播课视频教程