资源描述
计算机与信息学院实验报告
系: 专业: 年级:
姓名: 学号: 22 实验室号 计算机号 22
实验时间: 2013年10月29日 指导教师签字: 成绩:
报告退发 (订正 、 重做)
实验名称:(四)数据库的视图操作实验
一、实验目的和要求
(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
四、算法描述及实验步骤
五、调试过程
六、实验结果
七、总结
Sql语句:
/*
1. 基本操作实验
(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),
按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。
CREATE VIEW 借阅_计算机图书
AS SELECT 图书.*,借阅.*
FROM 图书,借阅
WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’
(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导),
完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,
并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
(3)查看上述实验结果。如果结果有误,予以纠正。
*/
use DB_BookAndReader
go
select * from borrow;
--(1)创建借阅_计算机图书视图
create view borrow_computerBook_view as
select book.bookId,type,press,author,bookName,pricing,readerId,borrowTime from book,borrow
where book.bookId = borrow.bookId and book.type = '计算机';
select * from borrow_computerBook_view;
--(2)完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,
--并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。
create view book_borrow_view as
select book.bookId,type,press,author,bookName,pricing,readerId,borrowTime from book
inner join borrow on (book.BookId=borrow.bookId);
select * from book_borrow_view;
/*
2. 提高操作实验
在学生-课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。
(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。视图的列名为课程号、课程名称和先修课名称。
(3)从选修表中建立查询成绩大于等于信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。
(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。
(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。
(6)利用Transact-SQL命令修改视图STU_SEX。把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。
(7)删除视图STU_CJ3。
*/
--(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。
create view STU_SEX as
select sno,sname,ssex,sage from student;
/*
create view STU_SEX as
select sno,sname,ssex,sage from student where ssex='男';
*/
/*
create view STU_SEX as
select sno,sname,ssex,sage from student 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)从选修表中建立查询成绩大于等于信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。
create view STU_CJ1 as
select sno,cno,crade from sc where crade >= 80;
select * from STU_CJ1;
--(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。
create view STU_CJ2 as
select sname,cname,crade from student,course,sc where student.sno = sc.sno and o=o;
select * from STU_CJ2;
--(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。
create view STU_CJ3 as
select sname,cname,crade from student,course,sc where student.sno = sc.sno and o=o and crade < 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。
drop view STU_CJ3;
展开阅读全文