《08计科《数据库原理》实验6(还像书上没有)》由会员分享,可在线阅读,更多相关《08计科《数据库原理》实验6(还像书上没有)(3页珍藏版)》请在金锄头文库上搜索。
1、实验六:关系图、索引和视图的定义及维护答案实验六:关系图、索引和视图的定义及维护答案一、实验目的一、实验目的1. 掌握创建关系图的方法。2. 掌握创建、查看和删除索引的操作和方法。3. 理解视图的含义,能使用 SQL Server 企业管理器创建视图并对其进行管理。二、实验环境二、实验环境已安装 SQL Server 企业版的计算机(120 台);具有局域网环境,有固定 IP;三、实验学时三、实验学时2 学时四、实验要求四、实验要求1. 索引和视图的创建和管理也可以用查询分析器实现,参照课本上的相关Transact-SQL 命令,写出对应的 Transact-SQL 实现代码。2. 将视图的创
2、建、修改、删除过程与实验二中表的创建、修改、和删除进行对照,看看有什么相同点和不同点。3. 完成实验报告;五、实验内容及步骤五、实验内容及步骤以系统管理员身份登录到 SQL Server 服务器,在 SQL Server2005 界面中实现第 1 题操作,其余题目用 SQL Server2005 界面 及 T-SQL 语句实现:1. 使用创建数据库关系图向导为学生选课数据库中的 Student 表,Course表,SC 表创建关系图。 2. 为 Student 表创建一个基于 Sname(姓名)的按降序排列的聚簇索引Stusname。 create clustered index stusna
3、me 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,cno desc)4. 删除 Student 表中的
4、Stusname 索引。 DROP INDEX Student.Stusname5. 创建信息系男学生基本信息视图 stu_is,包括学生的学号、姓名及年龄,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。 CREATE VIEW stu_is AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept=IS AND Ssex=男 WITH CHECK OPTION6. 建立信息系选修了 1 号课程的学生视图 stu_is_c1(学号,姓名,成绩)。 CREATE VIEW stu_is_cl(学号,姓名,成绩) AS SELECT Stude
5、nt.Sno,Sname,Grade FROM Student,SC WHERE Sdept=IS AND Student.Sno=SC.Sno AND Cno=17. 建立信息系男同学年龄在 19 岁以上学生信息的视图 stu_is_age。 (使用第 5 题的视图) CREATE VIEW stu_is_age AS SELECT * FROM stu_is WHERE Sage198. 查询信息系男同学年龄在 19 岁以上的学生信息。 SELECT * FROM stu_is_age9. 查询信息系选修了 1 号课程且成绩大于 80 的学生成绩信息。Select * from stu_i
6、s_c1 where grade8010. 向视图 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=2
7、0051500413. 将视图 stu_is_c1 中学号为“200515006”的学生成绩改为 75。 update stu_is_c1 set 成绩=75 where 学号=20051500614. 删除视图 stu_is 中学号为“200515020”的学生记录。 DELETE FROM stu_is WHERE Sno=20051502015. 将 stu_is 视图修改为只包含信息系学生学号、姓名及年龄。 ALTER VIEW stu_is AS SELECT Sno,Sname,Sage FROM Student16. 同时删除视图 stu_is 和 stu_is_age。DROP VIEW stu_is,stu_is_age思考题:1.考虑一下视图的作用,在什么样的情况下需要建立视图?2.索引、视图和基本表有什么不同 ?六、出现问题及解决办法六、出现问题及解决办法如:某些操作无法执行,如何解决?