数据库技术项目式教程(MySQL)课件 项目5 创建视图和索引.pptx
创建视图
任务提出数据操作实现了对表数据的查询和更新。除了直接对表数据进行查询和更新外,还可以通过视图实现数据查询和更新。使用视图可以大大简化数据查询操作。尤其是对于实现复杂查询,视图非常有用,而且可以提高安全性。
任务分析视图是由表派生出来的数据库对象。创建视图使用的SQL语句为CREATEVIEW语句。
1.视图概念视图作为一种数据库对象,通过将定义好的查询作为一个视图对象存储在数据库中。视图创建好后,可以和表一样,可以对它进行查询和更新,也可以在视图的基础上继续创建视图。数据库只存储视图的定义而不存储对应的数据。视图中的数据只存储在表中。视图也称为虚表。相关知识与技能
2.视图作用(1)为用户集中提取数据可以将多个表中的数据集中在一个视图中,然后通过对视图的查询查看多个表中的数据。(2)隐蔽数据库的复杂性使用视图,用户可以不必了解数据库中的表结构,也不必了解复杂的表间关系。(3)简化数据库用户权限管理视图可以让特定的用户只能看到表中指定的数据行和列。相关知识与技能
3.创建视图CREATEVIEW视图名[(视图列名1,…视图列名n)] AS SELECT语句在同一数据库中,视图名不能和表名相同。相关知识与技能
任务实施【例1】创建视图SexStudent,该视图中包含所有女生的基本信息。【例2】创建视图StudentAge,该视图中包含所有学生的学号、姓名和年龄。【例3】在School数据库中创建视图ComputerInfo,该视图中包含计算机应用技术专业学生的基本信息及班级信息。
4.常用视图操作语句语句功能Dropview[ifexists]视图名;删除视图DESCRIBE视图名;或简写成:DESC视图名;查看视图基本信息Showcreateview视图名;查看视图的详细定义相关知识与技能
任务总结表是物理存在的,可以理解成计算机中的文件。视图是虚拟的内存表,可以理解成Windows的快捷方式。视图中没有实际的物理记录,视图只是窗口。
使用视图
任务提出视图创建好后,可以和表一样,可以对它进行查询和更新。
任务分析在大多数的情况下,用户查询的数据可能存储在多张表中,查询起来比较繁琐。此时,可以将多张表中的数据集中在一个视图中,然后通过对视图的查询查看多张表中的数据,从而大大简化数据的查询操作。视图中没有实际存储数据,可以对视图进行更新吗,答案是肯定的。因为对视图的更新其实是对基表中数据的更新,只要能转换为对基表的更新,该视图更新操作就能正确执行。
视图作用之一是简化查询操作。【例1】创建视图Dorm_live,该视图中包含宿舍信息及入住信息。【例2】(从Dorm和Live表中)从视图Dorm_live中查询所有学生的详细住宿信息,结果包含学号Sno、宿舍编号DormNo、楼栋Build、房间号RoomNo、入住日期InDate。【例3】(从Dorm和Live表中)从视图Dorm_live中查询住在龙川北苑04南楼栋(即字段Build的值为龙川北苑04南)的学生的学号Sno和宿舍编号DormNo。1.利用视图简化查询操作
对视图进行更新要能转换为对基表数据的更新。如果不能转换为对基表数据的更新,则该视图更新操作执行出错。【例4】往视图SexStudent中添加一条男生记录。【例5】修改视图StudentAge中倪骏的年龄为20岁。【例6】修改School数据库的视图ComputerInfo中学号为202231010100101学生的Sname为李四,Classname为计算机222。2.通过视图更新数据
通过视图更新数据的注意事项(1)必须要能转换为对基表数据的更新。不能修改那些通过计算得到的视图数据,因为计算的数据在基表中不存在。(2)不能同时修改两个或者多个基表的数据。若要对基于两个或多个基表的视图中的数据进行修改,每次修改都必须只能影响一个基表。相关知识与技能
任务总结视图创建好后,可以像表一样对它进行查询和更新。对视图的更新是受限的,因为视图是不实际存储数据的虚表,因此对视图的更新,其实是对表中数据的更新。
创建索引
任务提出用户对数据库的操作最频繁的是数据查询。一般情况下,数据库在进行查询操作时需要对整张表进行数据搜索。当表中的数据较多时,按顺序搜索数据就需要很长的时间,这就造成了服务器的资源浪费。为了提高检索数据的能力,数据库引入了索引机制。
任务分析若要在一本书中查找所需的信息,应首先查找书的目录,找到该信息所在的页码,然后再查阅该页码的信息,无须阅读整本书。在数据库中查找数据也一样,为了加快查询速度,创建索引,通过搜索索引找到特定的值,然后找到包含该值的行,从而提高数据检索速度。本任务先理解数据访问方式,然后理解创建索引的优缺点和索引分类,