实验六:关系图、索引和视图的定义及维护

更新时间:2024-05-11 14:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验六:关系图、索引和视图的定义及维护

一、实验目的

1. 掌握创建关系图的方法。

2. 掌握创建、查看和删除索引的操作和方法。 3. 理解视图的含义,能使用SQL Server企业管理器创建视图并对其进行管

理。

二、实验环境

已安装SQL Server 企业版的计算机(120台); 具有局域网环境,有固定IP; 三、实验学时

2学时 四、实验要求

1. 索引和视图的创建和管理也可以用查询分析器实现,参照课本上的相关

Transact-SQL命令,写出对应的Transact-SQL实现代码。

2. 将视图的创建、修改、删除过程与实验二中表的创建、修改、和删除进

行对照,看看有什么相同点和不同点。 3. 完成实验报告; 五、实验内容及步骤

以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现第1题操作,其余题目用SQL Server2005界面 及T-SQL 语句实现:

1. 使用创建数据库关系图向导为学生选课数据库中的Student表,Course

表,SC表创建关系图。

2. 为Student表创建一个基于Sname(姓名)的按降序排列的聚簇索引

Stusname。

CREATE CLUSTERED INDEX Stusname ON

Student(Sname DESC)

3. 为学生—课程数据库中的Student,Course,SC 3 个表建立索引。其中

student按学号升序建唯一索引,course按课程号升序建唯一索引,SC按学号升序和课程号降序建唯一索引,索引名称分别为Stusno,Coucno,Scno。

CREATE UNIQUE INDEX Stusno ON Student(Sno); CREATE UNIQUE INDEX Coucno ON Course(Cno);

CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); 4. 删除 Student表中的Stusname索引。 DROP INDEX student.Stusname

5. 创建信息系男学生基本信息视图stu_is,包括学生的学号、姓名及年龄,

并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。 CREATE VIEW stu_is AS

SELECT sno,sname, sage,ssex,sdept from student Where sdept = ‘IS’ and ssex=‘男’ WITH CHECK OPTION

6. 建立信息系选修了1号课程的学生视图stu_is_c1(学号,姓名,成绩)。 CREATE VIEW stu_is_c1(学号,姓名,成绩) AS

SELECT Student. Sno,Sname,Grade FROM Student,SC

WHERE Sdept= 'IS' AND

Student.Sno=SC.Sno AND SC.Cno= '1'

7. 建立信息系男同学年龄在19岁以上学生信息的视图stu_is_age。(使用

第5题的视图) CREATE VIEW stu_is_age AS

SELECT Sno,Sname,sage FROM stu_is WHERE sage>19

8. 查询信息系男同学年龄在19岁以上的学生信息。 SELECT * From stu_is_age WHERE sage>=19

9. 查询信息系选修了1号课程且成绩大于 80的学生成绩信息。 SELECT * FROM stu_is_c1 where grade>80

或SELECT Student.Sno,Sname ,grade FROM Student,SC

WHERE Student.Sno =SC.Sno AND SC.Cno= '1‘ AND sdept=‘CS’and grade>80

10. 向视图stu_is中插入一个新的学生记录,学号为200515027,姓名为王

唔,年龄为20。

Insert into stu_is

Values('200515027','王唔',20)

11. 向视图stu_is_c1中插入一个新的学生记录,学号为200515027,姓名

为王唔,成绩为60。

Insert into stu_is_c1

Values('200515027','王唔',60)

视图或函数 'stu_is_c1' 不可更新,因为修改会影响多个基表。

12. 将视图stu_is中学号为“200515004”的学生姓名改为“张珊”。 update stu_is

set sname='张珊'

where sno='200515004‘

13. 将视图stu_is_c1中学号为“200515006”的学生成绩改为75。 Update stu_is_c1 Set grade=75

Where sno='200515006‘

14. 删除视图stu_is中学号为“200515020”的学生记录。 DELETE

FROM stu_is

WHERE Sno= ' 200215020 ‘

15. 将stu_is视图修改为只包含信息系学生学号、姓名及年龄。 Alter view stu_is AS

Select sno,sname,sage from student Where sdept =‘IS’

16. 同时删除视图stu_is和stu_is_age。 drop view stu_is , stu_is_age

思考题:1.考虑一下视图的作用,在什么样的情况下需要建立视图? 视图的作用:

1. 视图能够简化用户的操作;

2. 视图使用户能以多种角度看待同一数据;

3. 视图对重构数据库提供了一定程度的逻辑独立性; 4. 视图能够对机密数据提供安全保护; 5. 适当的利用视图可以更清晰的表达查询。

不需要对数据库中的表进行修改内容只是查询时可建立视图 2.索引、视图和基本表有什么不同 ? 索引是基本表的目录。

视图可以理解为保存后的查询,它保存的是‘实在’表格经查询后的结果。

基本表是指数据库中‘实在’的表格,它存储的就是数据本身,它是视图的来源和基础,而视图丰富了基本表的表达。 六、出现问题及解决办法

如:某些操作无法执行,如何解决?

本文来源:https://www.bwwdw.com/article/am7g.html

Top