数据库原理实验4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福建农林大学资源与环境学院实验报告
系:国土资源专业:空间信息与数字技术年级:2016
姓名:任然学号:3165706014 实验室号____507__ 计算机号44
实验时间:2018年5日指导教师签字:成绩:
报告退发(订正、重做)
实验名称:数据库的视图操作实验
一、实验目的和要求
(1)掌握SQL Server中的视图创建向导和图表创建向导的使用方法;
(2)加深对视图和SQL Server图表作用的理解。
(3)掌握数据库安全性的操作方法。
二、实验内容和原理
1. 基本操作实验
(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。
CREATE VIEW 借阅_计算机图书
AS SELECT 图书.*,借阅.*
FROM 图书,借阅
WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’
(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
(3)查看上述实验结果。如果结果有误,予以纠正。
2. 提高操作实验
在学生-课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。
(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。视图的列名为课程号、课程名称和先修课名称。
(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。
(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。
(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。
(6)利用Transact-SQL命令修改视图STU_SEX。把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。
(7)删除视图STU_CJ3。
三、实验环境
硬件:计算机
软件:Windows 2000和SQL Server 2000
四、算法描述及实验步骤
(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。
CREATE VIEW 借阅_计算机图书
AS SELECT 图书.*,借阅.*
FROM 图书,借阅
WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’
(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
(3)查看上述实验结果。如果结果有误,予以纠正。
2. 提高操作实验
在学生-课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。
程序:create view STU_SEX AS SELECT Sno,Sname,Ssex,Sage FROM Student;
用:select * from STU_SEX; 来验证成功与否
程序:create view STU_SEX_男as select Sno,Sname,Ssex,Sage from STU_SEX where Ssex='男';
用:select * from STU_SEX_男; 来验证成功与否
程序:create view STU_SEX_女as select Sno,Sname,Ssex,Sage from STU_SEX where Ssex='女';
用:select * from STU_SEX_女
(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。视图的列名为课程号、课程名称和先修课名称。
程序:create view 课程_PRE as select cno,cname,(select cname from course y where x.cpno = o) '先修课名称' from course x;
用:select*from课程_PRE; 来验证成功与否
(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。
程序:create view STU_CJ1 as select sno,cno,grade from sc where grade >= 80;
用:select * from STU_CJ1;来验证成功与否
(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。
程序:create view STU_CJ2 as select sname,cname,grade from student,course,sc where student.sno = sc.sno and o=o;
用:select * from STU_CJ2; 来验证成功与否
(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。
程序:create view STU_CJ3 as select sname,cname,grade from student,course,sc where student.sno = sc.sno and o=o and grade<80;
用:select * from STU_CJ3; 来验证成功与否
(6)利用Transact-SQL命令修改视图STU_SEX。把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。
程序:alter view STU_SEX as select sno,sname,ssex,sage from student WITH CHECK OPTION;
用:select*from STU_SEX;来验证成功与否
(7)删除视图STU_CJ3。