内容正文:
MySQL数据库应用开发
任务6.2 MySQL视图
任务6.2 MySQL视图
视图
视图定义和管理
更新视图数据
知识点小结
本节实验
任务6.2 MySQL视图
能力目标
1.掌握视图的定义和设计原则(重点);
2.掌握查看视图、创建视图和删除视图(难点)。
思政目标
1.培养学生诚实守信、严谨求实、敬业乐业的工作作风;
2.培养学生敢于质疑,大胆创新精神。
任务6.2 MySQL视图
视图是从一个或多个表中导出的表,是一种虚拟存在的表。
视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以只关心对自己有用的数据。
视图可以使用户的操作更方便,并且可以保障数据库系统安全性。
任务6.2 MySQL视图
视图
视图定义和管理
更新视图数据
知识点小结
本节实验
视图概述
视图( view )为数据查询提供了一条捷径;视图是一个虚拟表,其中保存的仅仅是一条select语句,其数据源来自于数据库表,或者其他视图。
当基本表发生变化时,视图的数据也会随之变化。
视图是存储在数据库中的查询的SQL语句,使用它主要出于两种原因:第一是安全原因,视图可以隐藏一些数据;第二是可使复杂的查询易于理解和使用。
视图与基本表之间的对应关系:
视图的优势
视图的优势:
第一,增强数据安全性
不同的用户只能查询或修改与之对应的数据,继而增强了数据的安全访问控制。
第二,提高灵活性,操作变简单
使用虚拟表的形式达到少修改的效果。
使用视图可以简化数据查询操作,对于经常使用,但结构复杂的select语句,建议将其封装为一个视图。
视图的工作机制
视图的工作机制:
当调用视图的时候,才会执行视图中的SQL,进行取数据操作。
视图的内容没有存储,而是在视图被引用的时候才派生出数据。
这样不会占用空间,由于是即时引用,视图的内容总是与真实表的内容是一致的。
任务6.2 MySQL视图
视图
视图定义和管理
更新视图数据
知识点小结
本节实验
视图定义和管理
视图定义和管理
创建视图
删除视图
查看视图定义
修改视图定义
创建视图
视图语法格式:
create [or replace] view 视图名 [(视图列表)]
as 查询语句
[with check option]
其中:(1)“视图名”参数表示要创建的视图名称。
(2 )“查询语句”参数是一个完整的查询语句,表示从某个表中查出某些满足条件的记录,将这些记录导入视图中。
(3)with check option:可选项,表示更新视图时要保证在该视图的权限范围之内。
创建视图
示例1:在studentinfo数据库中创建视图xs_view1,视图中只包括女生的
学号、姓名、性别、出生日期等信息。
create view xs_view1
as
select Sno,Sname,Ssex,Sbirth from student where Ssex=‘女’;
示例2:在studentinfo数据库中创建视图xs_view2,视图中只包括CH202101班
学生的学号、姓名、班级、课程号等信息。
create view xs_view2
as
select student.Sno,Sname,Sclass,Cno from student join sc
on student.Sno=sc.Sno where Sclass=‘CH202101’;
创建视图(续)
视图定义后,就可以如同查询基本表那样对视图进行查询。
创建视图的注意事项:
1.运行创建视图的语句需要用户具有创建视图(crate view)的权限,若加了[or replace],则还需要用户具有删除视图(drop view)的权限。
2.select语句不能包含from子句中的子查询。
3.在定义中不能引用temporary表,不能创建temporary视图。
4.在视图定义中命名的表必须已存在。
5.不能将触发程序与视图关联在一起。
注意:使用视图查询时,若其关联的基本表中添加了新字段,则该视图将不包括新字段。如果与视图相关联的表或视图被删除,则该视图将不能使用。
删除视图
删除视图时,只能删除视图的定义,不会删除数据。
用户必须拥有drop权限。
语法格式:
drop view [if exists]
view_name[,view_name2]…
其中,view_name是视图名,声明了if exists,若视图不存在的话,也不会出现错误信息。使用drop view 可以一次删除多个视图。
查看视图定义
查看视图是指查看数据库中已经存在的视图的定义。查看视图必须要有show view的权限。
查看视图的几种方法:
1)describe语句,语法格式: