《实验五--嵌套、分组统计查询实验(报告).docx》由会员分享,可在线阅读,更多相关《实验五--嵌套、分组统计查询实验(报告).docx(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验五 嵌套、分组统计查询实验 一、实验目的使学生掌握SQL Server查询分析器的使用方法,加深对SQL语言的查询语句的理解。熟练掌握 嵌套查询、分组统计的操作方法。 二、实验内容该实验包括1)嵌套查询在SQL Server查询分析器中使用IN、比拟符、ANY或ALL和EXISTS操作符进行嵌套查询操 作。2)分组统计 使用函数进行查询。 三、实验方法.将查询需求用SQL语言表示。1 .在SQL Server查询分析器的输入区中输入SQL查询语句。2 .发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 四、实验步骤(1)嵌套查询用SQL语句的嵌套查询实现学生选课库中的以
2、下查询: 求选修了高等数学的学生学号和姓名; SELECT Sno,Sname FROM Student WHERE EXISTS (SELECT * FROM Sc WHERE EXISTS (SELECT * FROM CourseWHERE Course.Cno=Sc.Cno AND Student.Sno=Sc.Sno AND Cname=数学 )求1号课程成绩高于张三的学生学号和成绩; SELECT Sno,Grade FROM Sc WHERE Cno=l AND Grade( SELECT Grade FROM Sc WHERE Cno=l AND Sno=( SELECT Sn
3、o FROM Student WHERE Snam小张三, ) )求其他系中年龄小于计算机系年龄最大者的学生;SELECT Sname FROM Student WHERE Sage (SELECT MAX(Sage) FROM StudentWHERE Sdept=,Cs 1 ) AND SdeptOS1求其他系中比计算机系学生年龄都小的学生; SELECT Sname FROM Student WHERE SageANY(SELECT GradeFROM scWHERE 1GROUP BY Cno)查询有多少同学选修了 “数学”课程;SELECT COUNT(Sno)FROM course
4、,scWHERE Cname=数学AND course.Cno=sc.Cno查询有多少同学选修课程;SELECT COUNT( DISTINCT Sno)FROM scWHERE 1查询选课同学所有课程的总分、平均分,输出姓名、总分、平均分;SELECT Sname,SUM(Grade),AVG(Grade)FROM student,scWHERE student.Sno=sc.SnoGROUP BY Sname 查询每个同学(即使没有选课)所有课程的总分、平均分,输出姓名、总分、平均分;SELECT Sname,SUM(Grade),AVG(Grade)FROM student LEFT O
5、UTER JOIN sc ON (student.Sno=sc.Sno )GROUP BY Sname查询所有课程的总分150的同学的姓名、总分;SELECT Sname,SUM(Grade)FROM student,scWHERE student.Sno=sc.SnoGROUP BY SnameHAVING SUM(Grade)150查询选修了二门或以上课程的同学名单;SELECT Sno,SnameFROM studentWHERE 2VSELECT COUNT(Cno)FROM scWHERE sc.Sno=student.SnoGROUP BY Sno) 查询最低分大于70,最高分小于90的学生的学号。SELECT SnoFROM scGROUP BY SnoHAVING MIN(Grade)70 AND MAX(Grade)90五、实验报告要求1 .用SQL语言写出实验操作的查询语句。2 .实验步骤和实验结果。3 .实验中的问题。六、考前须知1 .注意选择数据库。2 .输入SQL语句时应注意,语句中均使用西文操作符号。七、思考题1. WHERE 与 HAVING 的区别。
限制150内