关系图、索引和视图的定义及维护

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

一、实验目的

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

2.掌握创建、查看和删除索引的操作和方法。

3.理解视图的含义,能使用SQL Server查询分析器器创建视图并对其进行

管理。

二、实验环境

已安装SQL Server 企业版的计算机(120台);

具有局域网环境,有固定IP;

三、实验学时

2学时

四、实验要求

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

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

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

行对照,看看有什么相同点和不同点。

3.完成实验报告;

五、实验内容及步骤

以系统管理员身份登录到SQL Server服务器,在SQL Server2005界面中实现第1题操作,其余题目用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 co ucno on course(cno) create unique index scno on sc(Sno,cno desc)

4.删除 Student表中的Stusname索引。

DROP INDEX Student.Stusname

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

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

CREATE VIEW stu_is AS SELECT Sno,Sname,Sage FROM Student WHERE

Sdept='IS' AND Ssex='男' WITH CHECK OPTION

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

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

WHERE Sdept='IS' AND Student.Sno=SC.Sno AND Cno='1'

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

第5题的视图)

CREATE VIEW stu_is_age AS

SELECT * FROM stu_is WHERE Sage>19

8.查询信息系男同学年龄在19岁以上的学生信息。

SELECT * FROM stu_is_age

9.查询信息系选修了1号课程且成绩大于 80的学生成绩信息。

Select * from stu_is_c1 where grade>80

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

唔,年龄为20。

INSERT INTO stu_is VALUES('200515027','王唔',20)

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

为王唔,成绩为60。

INSERT INTO stu_is_cl VALUES('200515027','王唔',60)

12.将视图stu_is中学号为“200515004”的学生姓名改为“张珊”。UPDATE stu_is SET Sname='张珊'

WHERE Sno='200515004'

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

update stu_is_c1 set 成绩=75

where 学号='200515006'

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

DELETE FROM stu_is WHERE Sno='200515020'

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

SELECT Sno,Sname,Sage FROM Student

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

DROP VIEW stu_is,stu_is_age

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

2.索引、视图和基本表有什么不同 ?

六、出现问题及解决办法

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

相关文档
最新文档