(本科)第10章MySQL视图ppt课件.pptx
-
资源ID:16398965
资源大小:813.60KB
全文页数:33页
- 资源格式: PPTX
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(本科)第10章MySQL视图ppt课件.pptx
课程主讲人:(本科)第10章-MySQL视图ppt课件中国农业大学 李辉p视图p视图定义和管理p更新视图数据p对视图的进一步说明p知识点小结p本章实验p视图是从一个或多个表中导出的表,是一种虚拟虚拟存在的表。p视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以只关心对自己有用的数据。p视图可以使用户的操作更方便操作更方便,并且可以保障数据库系统系统安全性安全性。p本章将介绍视图的含义和作用、视图定义的原则和创建视图的方法以及修改视图、查看视图和删除视图的方法。p视图视图p视图定义和管理p更新视图数据p对视图的进一步说明p知识点小结p本章实验p视图( view )为数据查询提供了一条捷径;视图是一个虚拟表虚拟表,其内容由查询定义,即视图中的数据并不像表、索引那样需要占用存储空间,视图中保存的仅仅是一条一条select语句语句,其数据源来自于数据库表,或者其他视图。p它同真实的表一样,视图包含一系列带有名称的列和行数据。p视图并不在数据库中以存储的数据存储的数据的形式存在。行和列数据来自于定义视图的查询所引用的表,并且在引用视图时动态生成。当基本表发生变化是,视图的数据也会随之变化。p视图是存储在数据库中的查询的查询的SQL语句语句,使用它主要出于两种原因:第一是安全安全原因,视图可以隐藏一些数据;第二是可使复杂的查询易于理解和使用易于理解和使用。p视图的优势: 第一,增强数据安全性数据安全性 同一个数据库表可以创建不同的视图,为不同的用户分配不同的视图,这样就可以实现不同的用户只能查询或修改与之对应的数据,继而增强了数据的安全访问控制。 第二,提高灵活性灵活性,操作变简单 有灵活性的功能需求后,需要改动表的结构而导致工作量比较大。那么可以使用虚拟表的形式达到少修改的效果。 使用视图可以简化数据查询操作,对于经常使用,但结构复杂的select语句,建议将其封装为一个视图。p视图的优势: 第三,提高数据的逻辑独立性逻辑独立性 使应用程序和数据库表结构在一定程度上逻辑分离(1)使用视图可以向应用程序屏蔽表结构,此时即便表结构发生变化,只需重新定义视图或者修改视图的定义,无须修改应用程序即可使应用程序正常运行。(2)使用视图可以向数据库表屏蔽应用程序,此时即便应用程序发生变化,只需重新定义视图或者修改视图的定义,无须修改数据库表结构即可使应用程序正常运行。p视图的工作机制: 当调用视图的时候,才会执行视图中的执行视图中的SQL,进行取数据操作。 视图的内容没有存储,而是在视图被引用的时候才派生出数据。 这样不会占用空间不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。p视图p视图定义和管理视图定义和管理p更新视图数据p对视图的进一步说明p知识点小结p本章实验p视图定义和管理 创建视图 删除视图 查看视图定义 修改视图定义p创建视图需要具有create view的权限权限,同时应该具有查询涉及的列的select权限。p在MySQL数据库下面的user表中保存这些权限信息,可以使用select语句查询。p视图语法格式:create algorithm = undefined | merge | temptableview 视图名 (视图列表)as 查询语句with cascaded | local check option 其中:(1)“视图名”参数表示要创建的视图名称。(2) algorithm是可选参数,表示视图选择的算法视图选择的算法;undefined选项表示MySQL自动选择要使用的算法;merge选项表示将使用视图的语句与视图的定义合起来,使得视图定义的某部分取代语句的对应部分;temptable选择表示将视图的结果存入临时表,然后使用临时表执行语句。(3)“查询语句”参数是一个完整的查询语句完整的查询语句,表示从某个表中查出某些满足条件的记录,将这些记录导入视图中。(4)cascaded是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;local表示更新视图时,要满足该视图本身的定义条件即可。(5)with check option是可选参数,表示更新视图时要保证在该视图的权限范围之内。p 视图定义后,就可以如同查询基本表那样对视图进行查询。p 创建视图的注意事项:1.运行创建视图的语句需要用户具有创建视图创建视图(crate view)的权限的权限,若加了or replace,则还需要用户具有删除视图删除视图(drop view)的权限的权限。2.select语句不能包含from子句中的子查询子句中的子查询。3.select语句不能引用系统或用户变量系统或用户变量。4.select语句不能引用预处理语句参数预处理语句参数。5.在存储子程序内,定义不能引用子程序参数子程序参数或局部变量局部变量。6.在定义中引用的表或视图必须存在存在,但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用check table语句。7.在定义中不能引用temporary表表,不能创建temporary视图。8.在视图定义中命名的表必须已存在。9.不能将触发程序触发程序与视图关联在一起。10.在视图定义中允许使用order by,但是,如果从特定视图进行了选择,而该视图使用了具有自己order by的语句,它将被忽略。p 注意:使用视图查询时,若其关联的基本表中添加了新字段,则该视图将不包括新字段不包括新字段。如果与视图相关联的表或视图被删除,则该视图将不能使用。p删除视图时,只能删除视图的定义定义,不会删除数据不会删除数据。p用户必须拥有drop权限权限。p语法格式:drop view if existsview_name,view_name2restrict | cascade p其中,view_name是视图名,声明了if exists,若视图不存在的话,也不会出现错误信息。也可以声明restrict和cascade,但他们没什么影响。使用drop view 可以一次删除多个视图多个视图。p查看视图是指查看数据库中已经存在的视图的定义。查看视图必须要有有show view的权限的权限。p查看视图的几种方法:1)describe语句,语法格式:describe 视图名称; 或者desc视图名称;2)show table status语句,语法格式: show table status like 视图名3)show create view语句,语法格式:show create view 视图名4)查询information_schem数据库下的views表语法格式:select * from information_schema.views where table_name =视图名p修改视图是指修改数据库中已经存在表的定义。当基本表的某些字段发生改变时,可以通过修改视图来保持视图和基本表之间的一致。pMySQL中通过create or replace view 语句或者alter语句来修改视图。(1) create or replace view 语句格式create or replace algorithm = undefined | merge | temptableview 视图名 属性清单 as select 语句 with cascaded | local check option;(2) alter 语句格式create or replace algorithm = undefined | merge | temptableview 视图名 属性清单 as select 语句 with cascaded | local check option;这里的所有参数都与创建视图的参数一样。p视图p视图定义和管理p更新视图数据更新视图数据p对视图的进一步说明p知识点小结p本章实验p对视图的更新其实就是对表的更新对表的更新,更新视图是指通过视图来插入(insert)、更新(update)和删除(delete)表中的数据。因为视图是一个虚拟表,其中没有数据。p通过视图更新时,都是转换到基本表基本表来更新。p更新视图时,只能更新权限范围内更新权限范围内的数据。超出了范围,就不能更新。p对检查视图进行更新操作时,只有满足检查条件检查条件的更新操作才能顺利执行。p检查视图分为local检查视图检查视图与cascade检查视图检查视图。 with_check_option的值为1时表示local(local视图),通过检查视图对表进行更新操作时,只有满足了视图检查条件的更新语句才能够顺利执行; 值为2时表示cascade(级联视图,在视图的基础上再次创建另一个视图),通过级联视图对表进行更新操作时,只有满足所有针对该视图的所有视图的检查条件的更新语句才能够顺利执行。p 原则:尽量不要更新视图,并且更新视图的语法update语法一样。p 视图无法更新无法更新的情况:1.视图中包含sum(),count()等聚集函数聚集函数的;2.视图中包含union、union all、distinct、group by、having等关键字的;3.常量视图常量视图,比如:create view view_now as select now() ;4.视图中包含子查询子查询;5.由不可更新不可更新的视图导出的视图;6.创建视图时algorithm为temptable类型;p 视图无法更新的情况:7.视图对应的表上存在没有默认值没有默认值的列,而且该列没有包含在视图里;8.with cascaded|local check option也将决定视图是否可以更新: local参数表示更新视图时要满足该视图本身定义的条件即可; cascaded参数表示更新视图时要满足所有相关视图和表的条件,默认值。p视图p视图定义和管理p更新视图数据p对视图的进一步说明对视图的进一步说明p知识点小结p本章实验p 视图是在原有的表或者视图的基础上重新定义的虚拟表虚拟表,这可以从原有的表上选取对用户有用的信息。那些对用户没有用,或者用户没有权限了解的信息,都可以直接屏蔽掉。p 这样做既可以使应用简单化,也保证了系统的安全。p 视图起着类似于筛选筛选的作用。p 视图的作用:1.使操作简单化操作简单化视图需要达到的目的就是所见即所需。也就是说,从视图看到的信息就是所需要了解的信息。视图可以简化对数据的操作。2.增加数据的安全性数据的安全性通过视图,用户只能查询和修改指定的数据。数据库授权命令可以限制用户的操作权限,但不能限制到特定行和列上。这样可以保证敏感信息不会被没有权限的人看到,可以保证一些机密信息的安全。3.提高表的逻辑独立性逻辑独立性视图可以屏蔽原有表结构变化带来的影响。p视图p视图定义和管理p更新视图数据p对视图的进一步说明p知识点小结知识点小结p本章实验本章知识小结:p MySQL数据库中视图的含义和作用p 创建视图、修改视图和删除视图的方法p视图p视图定义和管理p更新视图数据p对视图的进一步说明p知识点小结p本章实验本章实验p 实验内容:见教材“10.7 视图创建与管理实验”谢谢!中国农业大学 李辉 Email: