十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用示例
创新互联建站10多年成都定制网页设计服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都定制网页设计及推广,对主动防护网等多个领域拥有丰富的网站推广经验的网站建设公司。
使用示例
使用示例
检查选项的使用
mysql是可以基于视图创建视图,它会检查视图所依赖的视图的规则
如果再基于v2创建视图v3,v3没有定义检查选项,则此时向v3中插入数据时,不会检查是否满足v3的条件,但是会检查是否满足v2和v1的条件
local选项相比于cascaded,不会自动向上添加选项
如创建一个视图,此时视图中只包含一条数据
例如,现要查询每个学生选修的课程(多对多,三张表),将SQL保存到视图,以后再想查询,直接select * from 视图即可
一.视图概述
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。
视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据,如:社会保险基金表,可以用视图只显示姓名,地址,而不显示社会保险号和工资数等,另一原因是可使复杂的查询易于理解和使用。
视图:查看图形或文档的方式。
视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。和表一样,视图也是包括几个被定义的数据列和多个数据行,但就本质而言这些数据列和数据行来源于其所引用的表。
所以视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。
视图一经定义便存储在数据库中,与其相对应的数据并没有像表那样又在数据库中再存储一份,通过视图看到的数据只是存放在基本表中的数据。对视图的操作与对表的操作一样,可以对其进行查询、修改(有一定的限制)、删除。
当对通过视图看到的数据进行修改时,相应的基本表的数据也要发生变化,同时,若基本表的数据发生变化,则这种变化也可以自动地反映到视图中。
1、什么是视图
视图:MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果
2、视图应用场景
多个地方用到同样的查询结果该查询结果使用的sql语句较复杂
4、视图的好处
使用简单安全数据独立
5、创建或者修 改视图
创建视图的语法:
修改视图的语法
6、视图更新性
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。(1)包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all(2)常量视图(3)Select中包含子查询(4)join(5)from一个不能更新的视图(6)where子句的子查询引用了from子句中的表
7、删除视图的语法
用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。
8、查看视图结构的语法
show tables;如果需要查询某个视图的定义,可以使用show create view命令进行查看
show full tables from 数据库名 [like 'pattern']
"[]"表示可选的, like后面跟的是表名的模糊查询,.
举例:
一个视图的名字叫v_user, SQL语句可以写为show full tables from 数据库名 like '%v_user%';
MySQL查询视图