当前位置:文档之家› 数据库实验报告 索引和视图

数据库实验报告 索引和视图

西北师范大学计算机科学与工程学院学生实验报告
2、在student表的studentno和classno列上创建唯一索引UQ-stu,若该索引已存在,则删除后重建。

然后输出student表中的记录,查看输出结果的顺序。

SQL代码:
USE teaching
GO
IF EXISTS(SELECT name FROM sysindexes WHERE name='UQ_stu')
DROP INDEX student.UQ_stu
GO
CREATE NONCLUSTERED INDEX UQ_stu ON student(studentno,classno)
GO
SELECT*
FROM student
实验结果:
3、修改UQ-stu的索引属性,当执行多行插入操作时出现重复键值,则忽略该记录,且设置填充因子为80%
SQL代码:
USE
teaching
GO
ALTER INDEX UQ_stu ON student REBUILD
WITH(PAD_INDEX=ON,FILEFACTOR=80,IGNORE-DUP_KEY=ON)
GO
实验结果:
4、创建一个视图v-teacher,查询“计算机学院”所有教师的信息SQL代码:
USE teaching
GO
CREATE VIEW v_teacher
AS
SELECT*
FROM teacher
WHERE department='计算机学院'
GO
SELECT*
FROM v_teacher
实验结果:
5、创建一个视图v-avgstu,查询每个学生的学号、姓名及平均分,并且按照平均分降序排序
SQL代码:
USE teaching
GO
CREATE VIEW v_avgstu
AS
SELECT TOP(100)PERCENT student.studentno,studnt.sname,AVG(score.final)AS 'average'
FROM student,score
WHERE student.studentno=score.studentno
AND score.final IS NOT NULL
GROUP BY student.studentno,student.sname
ORDER BY AVG(score.final)DESC
GO
SELECT*
FROM v_avgstu
实验结果:
6、修改v-avgstu的视图定义,添加WITH CHECK OPTION选项SQL代码:
USE teaching
GO
ALTER VIEW v_avgstu
AS
SELECT*
FROM teacher
WHERE department='计算机学院'
WITH CHECK OPTION
GO
实验结果:
7、通过视图v-avgstu向基表teacher中分别插入数据(‘05039’,‘张馨月’,‘计算机应用’,‘讲师’,‘计算机学院’)和(‘06018’,‘李诚’,‘机械制造’,‘副教授’,‘机械学院’),并查看插入数据的情况
SQL代码:
USE teaching
GO
INSERT INTO v_teacher
VALUES('05039','张馨月','计算机应用','讲师','计算机学院')
INSERT INTO v_teacher
VALUES('06018','李诚','机械制造','副教授','机械学院')
SELECT*
FROM v_teacher
SELECT*
FROM teacher
实验结果:
8、通过视图v-teacher将基表teacher中教师编号为05039的教师职称修改为“副教授”
SQL代码:
USE teaching
GO
UPDATE v_teacher
SET prof='副教授'
WHERE teacherno='05039'
GO
SELECT*
FROM teacher
实验结果:
实验总结:
通过本次实验掌握了索引、统计信息和视图等数据库对象的基本概念和基本操作。

实验评语:
实验成绩教师签字。

相关主题