文档详情

数据库操作--索引,视图与查询(一)解析.doc

发布:2016-10-18约2.6千字共9页下载文档
文本预览下载声明
数据库实验报告(四) 班别:13统计2班 姓名: 学号:2013240942 评分: 实验题目 数据库操作--索引,视图与查询(一) 实验目的 掌握用 SQL 命令创建索引 掌握用 SQL 命令创建数据视图; 掌握用 SQL 命令进行单表查询CREATE UNIQUE CLUSTERED INDEX Clano ON Class(Classid); GO CREATE UNIQUE CLUSTERED INDEX CLAno ON ClassAssign (Classid); GO CREATE UNIQUE CLUSTERED INDEX Crno ON Classroom (Roomid); GO CREATE UNIQUE CLUSTERED INDEX Courno ON Course (Cid); GO CREATE UNIQUE CLUSTERED INDEX Depno ON Department (Deptid); GO CREATE UNIQUE CLUSTERED INDEX Enrno ON Enrollment (Sid); GO CREATE UNIQUE CLUSTERED INDEX Stuno ON Student (sid); GO CREATE UNIQUE CLUSTERED INDEX Teano ON Teacher (Tid); GO 为Course表建立一基于课程名(Cname)的唯一索引: CREATE UNIQUE INDEX COCN ON Course(Cname); 为 Department表基于系名(Dname) 建立一唯一索引: CREATE UNIQUE INDEX DEDN ON Department(Dname); 为 Student表基于姓名(sname)和年龄(sage)建立一非聚簇索引,使数据基于姓名的升序和年龄的降序排列: CREATE NONCLUSTERED INDEX STSN ON Student(Sname ASC,Sage DESC); 建立一视图,用于以后维护数学系的学生信息: CREATE VIEW MA_Student AS SELECT Sname,sid,Sage FROM Student WHERE Deptid=MA WITH CHECK OPTION 删除Student表中基于sname和sage的非聚簇索引: DROP INDEX STSN ON Student 查询数学系(MA)全体学生的学号,姓名和年龄: SELECT Sid,Sname,Sage FROM Student WHERE Deptid=MA 查询计算机系(CS)小于19岁的学生的学号: SELECT Sid FROM Student WHERE Sage19 AND Deptid=CS 查询信息1班的学生的平均年龄: SELECT AVG(Sage) FROM Student WHERE Classid=信息1班 MA001最好成绩的学生的学号和成绩: SELECT Sid,grade FROM Enrollment WHERE grade IN (SELECT MAX(grade) FROM Enrollment WHERE Cid=MA001); 查询选修了MA001,MA002,CS005,IS003,EN004号课程中任一课程的学生的学号及姓名: SELECT Sid,Sname FROM Student WHERE Sid IN( SELECT Sid FROM Enrollment WHERE Cid IN(MA001,MA002,CS005,IS003,EN004)) 查询所有至少有三门课程不及格的学生的学号,姓名: SELECT Sid,Sname FROM Student WHERE Sid IN( SELECT Sid FROM Enrollment GROUP BY Sid HAVING COUNT(*)2 ) INTERSECT SELECT Sid,Sname FROM Student WHERE Sid IN( SELECT Sid FROM Enrollment WHERE grade60) 查询金融2班全体学生课程MA001的平均成绩: SELECT AVG(grade) FROM Enrollment WHERE Sid IN( SELECT Sid FROM Student WHERE Classid=金融2班 AND Cid=MA001 ) SELECT Sname,Sage,Sid FROM Stud
显示全部
相似文档