实验名称 实验4 视图的创建与使用 日期 2020年 06 月 11 日
一、实验目的:
(1)理解视图的概念。
(2)掌握创建视图、测试、加密视图的方法。
(3)掌握更改视图的方法。
(4)掌握用视图管理数据的方法。
二、实验环境:
PC + Windows + SQL Server
三、实验内容
1.创建视图
(1)创建一个名为stuview1的水平视图,从Student_info数据库的student表中查询出所有男学生的资料。并在创建视图时使用with check option。
截图:
(2)创建一个名为stuview2的投影视图,从数据库Student_info的Course表中查询学分大于3的所有课程的课程号、课程名、总学时,并在创建时对该视图加密。
截图:
(3)创建一个名为stuview3的视图,能检索出“051”班所有女生的学号、课程号及相应的成绩。
截图:
2.查询视图的创建信息及视图中的数据
(1)查看视图stuview1的创建信息。
方法:通过系统存储过程sp_help查看。
截图:
(2)查看视图的定义脚本。
方法:通过系统存储过程sp_helptext。
截图:
3.修改视图的定义
修改视图stuview2,使其从数据库Student_info的Course表中查询总学时大于60的所有课程的课程号、课程名、学分。
截图:
4.视图的更名与删除
(1)将视图stuview3更名为stuv3。
截图:
(2)将视图stuv3删除。
截图:
5.管理视图中的数据
(1)从视图stuview1查询出班级为“051”、姓名为“张虹”的资料。
截图;
(2)向视图stuview1中插入一行数据。学号:20110005,姓名:许华,班级:054,性别:男,家庭住址:南京,入学时间:2011/09/01,出生年月:1983/01/09。
截图:
原Student表中的内容有何变化?
答:多了一条有关‘许华’的记录。
思考:如向视图stuview1中插入一行数据。学号:20110006,姓名:赵静,班级:054,性别:女,家庭住址:南京,入学时间:2011/09/01,出生年月:1983/11/09。会出现什么样的结果?原Student表中的内容有何变化?
答:不能插入。因为stuview1是水平视图,是在Student中查询出所有关于‘男’的学生资料,而插入的性别是‘女’,违反了指定的WITH CHECK OPTION,所以不能插入。
(3)修改视图stuview1中的数据。
将stuview1中054班、姓名为“许华”同学的家庭地址改为“扬州市”。
截图:
原Student表中的内容有何变化?
答:Student中许华的家庭地址变为了‘扬州’。
(4)删除视图stuview1中班级为054、姓名为“许华”的同学的记录。
截图:
原Student表中的内容有何变化?
答:‘许华’的记录也会被删除。
四、心得体会(150字以上):
通过此次实验,明白了表属于全局模式的表,是实表;视图是属于局部模式的表,是虚表。视图的建立和删除只影响视图本身,不影响对应的基本表。在进行视图的更新和插入时,要注意条件的约束。例如:在对学生性别进行更新时,只能将性别由‘男’更新为‘女’或者由‘女’更新为‘男’,而不能出现其他字符。
视图能够简化用户的操作、能以多种角度看待同一数据、视图对重构数据库提供了一定程度的逻辑独立性。