sqlserver2005数据库应用与开发教学课件作者李新德4

上传人:E**** 文档编号:102567766 上传时间:2019-10-03 格式:PPT 页数:43 大小:691.50KB
返回 下载 相关 举报
sqlserver2005数据库应用与开发教学课件作者李新德4_第1页
第1页 / 共43页
sqlserver2005数据库应用与开发教学课件作者李新德4_第2页
第2页 / 共43页
sqlserver2005数据库应用与开发教学课件作者李新德4_第3页
第3页 / 共43页
sqlserver2005数据库应用与开发教学课件作者李新德4_第4页
第4页 / 共43页
sqlserver2005数据库应用与开发教学课件作者李新德4_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《sqlserver2005数据库应用与开发教学课件作者李新德4》由会员分享,可在线阅读,更多相关《sqlserver2005数据库应用与开发教学课件作者李新德4(43页珍藏版)》请在金锄头文库上搜索。

1、第四章 视图和游标,2,4,项目五 创建并使用视图,任务 视图的创建和查询,项目六 声明并使用游标,任务 游标的使用,返回,项目五 创建并使用视图,【项目需求】 由数据库设计构建的数据库表,是依据对应用系统的需求分析等综合因素确定的。然而在实际应用中,会有一些特殊的查询,需要简化或重构数据表,以便提高查询效率,这时,就可以采用先创建视图,再在视图中查询的方式来解决。本项目将介绍如何为现有的数据库表创建视图等方法,大大提高了运用数据库的灵活性。 【完成项目的条件】 (1)熟练掌握数据库表select 查询等语句。 (2)掌握界面方式创建视图的方法。 (3)掌握使用语法创建和查询视图的方法,下一页

2、,返回,项目五 创建并使用视图,【方案设计】 本项目可以分为两部分内容,分别是创建视图和视图查询。 (1)创建视图可以有两种方法来实现:第一种方法是在数据库管理系统的“对象资源管理器”中,通过界面操作来完成;第二种是在数据库管理系统的“新建查询”窗口中,通过编写代码组成创建视图的语句,并执行语句来创建视图。 (2)视图查询仅能在数据库管理系统的“新建查询”窗口中实现,同样需要编写查询语句,并执行语句来得到验证。 创建视图和视图查询是本项目中必须要熟练掌握的知识和技能,而对于视图的其他功能,只做了解。 【相关知识和技能】 视图的概念,上一页,下一页,返回,项目五 创建并使用视图,视图是从一个或多

3、个表(或视图)中映射出的虚表。其包括有三个含义:其一,它是虚表,不是具有物理存在的表,即在数据库中只存储其定义,没有实际的存储空间;其二,它来自一个或多个表(或视图),这些表称为视图的基本表;其三,视图是映射出的,意思是从基本表中以某种特殊的视角“看到”的“风景”,非常形象,故称视图,如何“看”,则是形成视图的关键。 举个例子,有个学生表,包含了学生的各种情况,现在只需要处理男同学的这部分,那么,从学生这个基本表中映射出男同学内容的这个定义,就是一个视图。对于相同的基本表,不同的视图实际上就是不同的“视角”定义。视图一经定义,就可以像表一样被查询、修改、删除和更新。 视图有很多优点,主要表现在

4、:,上一页,下一页,返回,项目五 创建并使用视图,(1)屏蔽了数据库的复杂性。定义视图简化了信息量,使得对数据的处理更加简单和快捷。 (2)便于数据的集中。视图可以将原先分散在几处的数据集中在一起,使原来对几个表的组合查询等处理变成了只要对一个视图的查询处理。 (3)简化了用户权限管理。将用户有权限的不同表中的数据列归在一个视图中,简化了数据安全管理。 (4)便于数据的共享。将各用户可共享的数据放在一起,便于共享和存储。 (5)便于重组数据表。实际的表已经被固定了,但需要是各种各样的,用视图可以重组数据,解决了各种需要。 使用视图的限制:,上一页,下一页,返回,项目五 创建并使用视图,(1)只

5、能在当前数据库中才能创建视图。视图的命名必须遵循标识符命名规则,不能与表同名。 (2)在视图上不能定义规则、默认值和触发器。 现实中使用视图的意义主要在于集中数据和简化查询。因此本项目主要掌握视图的创建和视图的查询,而其他视图的功能,如视图数据的插入、修改、删除等,一般情况下较少使用,且有不少限制,有时不如直接去对基本表操作。对此,我们只要熟悉和了解即可。,上一页,返回,任务 视图的创建和查询,任务目标 (1)掌握界面方式创建视图。 (2)掌握使用语法创建和查询视图。 (3)了解视图的其他功能。 任务分析 本任务可以分成两个部分,一个是界面操作部分,另一个是语法编码部分。界面操作部分比较简单,

6、主要在SQL Server 2005 数据库管理系统的“对象资源管理器”中来完成,只要弄清步骤就能迅速掌握。而语法编码部分需要记住语法结构和规则,常常会出错,需要认真、细致才能完成好。语法编码部分主要在SQL Server 2005 数据库管理系统的“新建查询”窗口中来完成。,下一页,返回,任务 视图的创建和查询,知识准备 1. 创建视图 使用语句create view 可以创建视图,例如: use STUDY Go create view View_student as select studentid,name,sex,birthday,specialty from tb_student

7、where specialty= 计算机软件 创建视图的简单语法格式为:,上一页,下一页,返回,任务 视图的创建和查询,create view () as select 语句可以针对一个或多个表或视图,对创建视图中的select 语句还有如下限制: (1)select 语句中不能使用compute 或compute by 子句。 (2)select 语句中不能使用order by 子句。 (3)select 语句中不能使用into 子句。 (4)select 语句中不能使用临时表或只是表的变量。 用语法来创建视图时可以通过在“create view ”后面定义别名来替换来自基本表的列名。 任务

8、实施,上一页,下一页,返回,任务 视图的创建和查询,一、视图的界面操作 视图的界面操作包含视图的创建、更新和删除,以及对视图中数据的查询、插入和删除等。这些操作均可在SQL Server 2005 数据库管理系统的“对象资源管理器”中来完成。 下面是界面创建视图的主要步骤: (1)启动“SQL Server management Studio”在“对象资源管理器”中展开“数据库”展开“STUDY”,右击“视图”的“新建视图”,如图4-1 所示。 (2)在弹出的添加表窗口中,添加所需要的基本表或视图等,这里我们选择“表”选项卡,选择表“tb_student”,单击“添加”,如图4-2 所示,如果

9、还需添加其他表,可继续选中表并按“添加”,若不需要了可单击“关闭”,关闭此弹出窗口。,上一页,下一页,返回,任务 视图的创建和查询,(3)在添加完基本表后,视图窗口中显示基本表的所有列,如图4-3 所示,就可以用鼠标选择所需要的列了。可以看到随着鼠标选择列,其他子窗口中也在同步组织。 (4)在中间子窗口中,“别名”栏可以使在视图中不用原名,“排序类型”栏可以指定列的排序方式,而“筛选器”栏则指示了创建本视图的映射规则,也就是构成条件。我们在专业列“specialty”对应的“筛选器”栏中输入“计算机软件”,回车,可看到中间子窗口下面的子窗口中构建的语句,为一条普通的带条件的select 语句。

10、 (5)完成构建后,单击工具栏的“保存”按钮,输入创建的视图名view_student,单击“确定”,便完成了视图的创建。 视图创建完后,如图4-4 所示,可在“对象资源管理器”中的“STUDY”“视图”中看到刚刚创建的视图“dbo.View_student”。,上一页,下一页,返回,任务 视图的创建和查询,右击“修改”可回到图4-3 所示的构建视图窗口,可以进行修改更新,选“打开视图”可看到视图这个虚表中的数据如图4-5 所示,选“删除”可删除本视图,非常方便。 对视图的查询、插入和删除数据的界面操作,同对待通常的表是一样的。当对视图的数据进行插入时,基本表中的数据也同时得到了插入(但其他字

11、段的属性必须是可空),反之亦然;当对视图的数据进行删除时,基本表中的数据也同时被删除了,反过来也是。这是因为视图不是一个真实的表,而仅是一条select 语句,一个语法定义。在对视图进行操作时,实际上是在对基本表进行操作。 二、视图的语法使用 1. 视图创建,上一页,下一页,返回,任务 视图的创建和查询,【例4.1】创建视图View_student_male,构建条件是选择计算机软件专业的男学生的学号、姓名,还要求包含其选修的课程号及成绩。 use STUDY go create view View_student_male as select tb_student.studentid, na

12、me, courseid, score from tb_student, tb_score where specialty=计算机软件 and sex=1 and tb_student.studentid=tb_score.studentid,上一页,下一页,返回,任务 视图的创建和查询,【例4.2】创建一个平均成绩的视图View_student_avg,包含有两个列:学号和平均成绩,并且学号列用“学号”来代替,平均成绩列用“均分”来表示。 use STUDY go create view View_student_avg(学号,均分) as select studentid, avg(sco

13、re) from tb_score group by studentid 2. 视图数据查询,上一页,下一页,返回,任务 视图的创建和查询,视图创建后,就可以如同查询真实表一样对视图进行查询了。 【例4.3】在视图View_student_avg 中查找均分在80 以上的学号及平均成绩。 select 学号,均分 from View_student_avg where 均分80 执行的结果如下:,上一页,下一页,返回,任务 视图的创建和查询,视图虽然只是一个虚表,但它作为数据库的对象可以被赋予权限,例如:可以限制某用户访问表tb_student 的权限,而只开放视图View_student_m

14、ale 的权限,也就相当于限制了该用户访问除视图外的其他信息。因此,视图也可以被看做是数据库安全管理的一种措施。 在创建了视图后,基本表若添加了记录,则视图也会将符合映射条件的记录增加进来,而若基本表增加了新的字段,视图也会自动添加新字段吗?显然不会。同学们想一想为什么?那么原来的视图还能查到记录吗?能查到。若基本表被删除了,视图还能查数据吗?不能。很多这样的问题本来不该成为问题,目的是来考查学生对视图的概念是否真的掌握,如果牢牢地把握视图只是个定义,并非是个实体,那么上述问题就不是问题了。 3. 视图数据插入,上一页,下一页,返回,任务 视图的创建和查询,向视图中插入数据类似于对表数据的插入

15、,用insert into 语句。向视图中插入数据后,基本表中的数据也同时得到了插入(但基本表的其他字段的属性必须是可空)。 【例4.4】为视图View_student 增加一条记录。 Insert into View_student values(088888,刘洋,1,1994-7-21,计算机软件) 由于视图View_student 本身是按照筛选“计算机软件”专业映射出来的,因此在插入记录时不能是“计算机软件”专业以外的专业。 另外,当视图的映射来自于多个表时,不能向该视图插入数据,因为这将会影响多个表。 4. 视图数据修改,上一页,下一页,返回,任务 视图的创建和查询,与真实表一样,

16、使用update 语句可以对视图数据进行修改,基本表也同时被修改。 【例4.5】修改视图View_student_male,使选修“101”课程的成绩提高5 分。 update View_student_male set score = score + 5 where courseid = 101 若视图的映射来自于多个表时,则修改一次该视图只能变动一个基本表的数据。 5. 视图数据删除 使用delete 语句可以删除视图和基本表中的记录。,上一页,下一页,返回,任务 视图的创建和查询,【例4.6】删除视图View_student 中姓名叫“刘洋”的记录。 Delete from View_student where name = 刘洋 若视图的映射来自于多个表时,不能使用delete 语句来删除,因为删除会影响多个基本表。 6. 修改视图、删除视图 修改视图、删除视图使用的语句与对待真实表是类似的。修改视图用alter view,删除视图用drop view。平时用不到,这里省去不讲,有兴趣的同学可自己去查阅。 任务总结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号