加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

实验四 数据库的视图操作实验

(2010-12-01 09:28:23)
分类: 大学实验报告

一、实验目的和要求

(1)掌握 SQL Server中的视图创建向导和图表创建向导的使用方法;

(2)加深对视图和SQL Server图表作用的理解。

(3)掌握数据库安全性的操作方法。

二、实验内容和原理

1. 基本操作实验

(1)在SQL Server企业管理器中调出创建视图向导,按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。

CREATE VIEW 借阅_计算机图书

AS SELECT 图书.*,借阅.*

FROM 图书,借阅

WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’

(2)在SQL server企业管理器中调出创建图表向导, 完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.编号=借阅.书号”外码与被参照表之间的关联。

(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. 基本操作实验

(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语句描述下列视图定义并在SQL Server企业管理器中,用视图创建向导创建这些视图。

(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。

create view stu_sex

as select sno,sname,ssex,sage

from student

where ssex ='男'

(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。视图的列名为课程号、课程名称和先修课名称。

create view 课程_pre

as select cno,cname,(select cname from course y where x.cpno=y.cno) cpname

from course x

(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。

create view stu_sj1

as select sno,cno,grade

from sc

where grade >=80

(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。

create view stu_cj2

as select student.sno,sc.cno,grade

from student,sc,course

where student.sno =sc.sno and sc.cno =course.cno

(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。

create view stu_cj3

as select student.sno,cname,grade

from student,course,sc

where student.sno =sc.sno and sc.cno =course.cno and grade <80

(6)利用Transact-SQL命令修改视图STU_SEX。把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。

alter view stu_sex

as select sno,sname,ssex,sage

from student

with check option

(7)删除视图STU_CJ3。

drop view stu_cj3

五、调试过程

1、在建立视图课程_PRE时,命令能够成功完成,但是查询结果中先修课名称为空,如下:

http://s6/middle/6ea6cd6a4964f3654cc15&amp;690,检查SQL命令语句

http://s2/middle/6ea6cd6a0756e52419801&amp;690,先修课参照课程号,应对COURSE定义别名,修改命令语句后,输出结果正确。

六、实验结果

1. 基本操作实验

(1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。

http://s9/middle/6ea6cd6a0756e524336c8&amp;690

(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导), 完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。

http://s14/middle/6ea6cd6a4964f36ab9d7d&amp;690

(3)查看上述实验结果。如果结果有误,予以纠正。

2. 提高操作实验

在学生-课程数据库中用Transact-SQL语句描述下列视图定义并在SQL Server企业管理器中,用视图创建向导创建这些视图。

(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。

http://s13/middle/6ea6cd6a4964f36cef8cc&amp;690

(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。视图的列名为课程号、课程名称和先修课名称。

http://s13/middle/6ea6cd6a4964f3702e45c&amp;690

(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。视图的列名为学号、课程号和成绩。

http://s3/middle/6ea6cd6a0756e5253f792&amp;690

(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。

http://s16/middle/6ea6cd6a0756e525e33ef&amp;690

(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。

http://s11/middle/6ea6cd6a4964f37bf695a&amp;690

(6)利用Transact-SQL命令修改视图STU_SEX。把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。

http://s11/middle/6ea6cd6a0756e526f009a&amp;690

(7)删除视图STU_CJ3。

成功删除。

七、总结

在这次实验中,我们掌握了SQL Server中的视图创建向导和图表创建向导的使用方法,加深了对视图和SQL Server图表作用的理解。

在实验中,学会了如何通过编写SQL语句来创建视图完成各种查询操作,并将查询结果以视图的形式独立存在,如何修改视图,如何删除视图。在实验的过程中,由于对视图掌握的不够熟练,出现了一些错误,通过仔细看课本,一个一个的解决了出错的地方,更深入的了解了视图。

认真的完成每一道题,并能得到想要的结果,心里有说不出的高兴。虽然花费了时间,但是学到了知识,收获了乐趣。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有