数据库实验五:视图的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库实验五:视图的应用
一、实验目的与要求:
1.实验目的
(1)理解视图的概念;
(2)掌握视图的使用方法。
(3)理解视图与基本表的异同之处。
2.实验要求
(1)参照实验五中完成的查询,按如下要求设计与建立视图:
1)基于单个表按投影操作定义视图。
2)基于单个表按选择操作定义视图。
3)基于单个表按选择与投影操作定义视图。
4)基于多个表根据连接操作定义视图。
5)基于多个表根据嵌套操作定义视图。
6)定义含有虚字段的视图。
(2)分别在定义的视图设计一些查询(包括基于视图与基本表的连接或嵌套查询)。
(3)在定义的视图上进行插入、更新与删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。
(4)在实验报告中要给出具体的视图定义要求与操作要求,并针对各种情况做出具体的分析与讨论。
二、实验内容
1、实验原理
(1)视图就是用SQL SELECT查询定义的,创建视图命令格式如下:
CREATE VIEW <视图名> AS
(2)删除视图的命令格式如下:
DROP VIEW <视图名>
2、实验步骤与结果
(1)调出SQL Server2005软件的用户界面,进入SQL SERVER MANAGEMENT STUDIO。
(2)输入自己编好的程序。
(3)检查已输入的程序正确与否。
(4)运行程序,并分析运行结果就是否合理与正确。在运行时要注意当输入不同的数据时所得到的结果就是否正确。
(5)输出程序清单与运行结果。
(1)参照实验五中完成的查询,按如下要求设计与建立视图:
1)基于单个表按投影操作定义视图。
create view v as
select教师编号,姓名
from教师
2)基于单个表按选择操作定义视图。
create view v_order as
select*
from教师
where职称='教授'
3)基于单个表按选择与投影操作定义视图。
create view v_cuss as
select教师编号,姓名,职称
from教师
where职称='教授'
4)基于多个表根据连接操作定义视图。
create view v_join as
select教师编号,职称,课程编号,课程名称
from教师join课程
on教师、教师编号=课程、责任教师
5)基于多个表根据嵌套操作定义视图。
create view v_item as
select*
from教师
where教师编号in(
select责任教师
from课程
where课程性质='专业基础'
6)定义含有虚字段的视图。
create view v_items(教师编号,姓名,工资每学时)as
select i、教师编号,i、姓名,i、工资/j、学时
from教师i,课程j
where i、教师编号=j、责任教师
(2)分别在定义的视图设计一些查询(包括基于视图与基本表的连接或嵌套查询)。
select*from v_cuss
select v_cuss、教师编号,v_cuss、姓名,专业
from v_cuss join v_item
on v_cuss、教师编号=v_item、教师编号
(3)在定义的视图上进行插入、更新与删除操作,分情况讨论哪些操作可以成功完成,哪些操作不能完成,并分析原因。
插入操作:
要求向“课程”视图插入“课程编号”为“09”的“组成原理”,在查询窗口编写如下语句:
insert into课程values('09','组成原理','1','8','专业基础')
更新:
update学生
set学生、性别='她'
where学号='001'
操作无法完成,因为性别只能为男或者女。
update学生
set学生、性别='女'
where学号='001'
跟新前:
跟新后:
删除:
要求删除“管理学课程信息简表”,在查询窗口编写如下语句:
delete学生
where学号=010
三、实验分析与小结:
(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析; 有待优化思路)
1、实验过程中的问题分析、产生的原因以及解决方法。
2、实验结果分析; 有待优化思路。
注意事项:在进行视图的跟新操作的时候,要注意该跟新条目的约束条件,例如:
在对学生的性别进行跟新的时候,只能将“男”跟新成“女”,或者将“女”跟新
为“男”,而不能跟新成其她的字段。
四、其它
思考题:
1.视图的含义与作用就是什么?它与基本表的区别就是什么?
从用户角度来瞧,一个视图就是从一个特定的角度来查瞧数据库中的数据。从数据库系统内部来瞧,一个视图就是由SELECT语句组成的查询定义的虚拟表。从数据库系统内部来瞧,视图就是由一张或多张表中的数据组成的,从数据库系统外部来瞧,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。
区别:1、视图就是已经编译好的sql语句。而表不就是
2、视图没有实际的物理记录。而表有。
3、表就是内容,视图就是窗口
4、表只用物理空间而视图不占用物理空间,视图只就是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改
5、表就是内模式,试图就是外模式
6、视图就是查瞧数据表的一种方法,可以查询数据表中某些字段构成的数据,只就是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,就是实表;视图属于局部模式的表,就是虚表。
8、视图的建立与删除只影响视图本身,不影响对应的基本表。
得分(百分制)