您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 大学计算机-数据库实验E-5
实验五嵌套、分组统计查询实验一、实验目的使学生加深对SQL语言的查询语句的理解。熟练掌握嵌套查询和分组统计查询的操作方法。二、实验内容1.使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。2.使用函数进行分组统计查询。三、实验方法1.将查询需求用SQL语言表示。2.输入SQL查询语句。3.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。四、实验步骤四、实验步骤1.用SQL语句的嵌套查询实现学生选课库中的下列查询:①求选修了高等数学的学生学号和姓名;selectsno,snamefromstudentwhereexists(select*fromscwherestudent.sno=sc.snoandsno=(selectsnofromcoursewherecname='数学'))②求号课程成绩高于张三的学生学号和成绩;selectsno,gradefromscwherecno='1'andgradeall(selectgradefromscwherecno='1'andsnoin(selectsnofromstudentwheresname='张三'))③求其他系中比计算机系学生年龄都小的学生(给出两条不同的SQL语句);selectsno,snamefromstudentwheresdept!='CS'andsageany(selectsagefromstudentwheresdept='CS')selectsno,snamefromstudentawherea.sdept!='CS'andnotexists(select*fromstudentbwherea.sno=b.snoandsage=some(selectsagefromstudentwheresdept='CS'))④求没有选修号课程的学生姓名;selectsnamefromstudentwherenotexists(select*fromscwherecno='2'andstudent.sno=sc.sno)⑤查询选修了全部课程的学生的姓名。selectsnamefromstudentwherenotexists(select*fromcoursewherenotexists(select*fromscwherestudent.sno=sc.snoandsc.cno=course.cno))2.用SQL语句实现学生选课库中的下列查询:①查询最高分同学的学号,课程号和成绩;selectsno,cno,gradefromscwheregrade=(selectmax(grade)fromsc)②查询每个同学(即使没有选课)所有课程的总分、平均分,输出姓名、总分、平均分;selectsname,总分=sum(grade),平均分=avg(grade)fromstudentafulljoinscbona.sno=b.snogroupbysname③查询选修了二门或以上课程的同学学号和姓名;selectsno,snamefromstudentwheresnoin(selectsnofromscgroupbysnohavingcount(cno)=2)④查询最低分大于,最高分小于的学生的学号;selectsnofromscgroupbysnohavingmin(grade)70andmax(grade)90⑤查询选修了全部课程的学生的姓名(采用分组统计查询实现);selectsnamefromstudentwheresnoin(selectsnofromscgroupbysnohavingcount(cno)=(selectcount(cno)fromcourse))⑥查询每门课程最高分同学的课程号,学号和成绩。(选作)selecta.sno,a.cno,a.gradefromscawherea.gradein(selectmax(b.grade)fromscbwherea.cno=b.cnogroupbyb.cno)五、实验报告要求1.用SQL语言写出实验操作的查询语句。2.实验结果。3.实验中存在的问题及解决方法。4.回答思考题。六、注意事项1.注意选择数据库。2.输入SQL语句时应注意,语句中均使用西文操作符号。七、思考题1.连接查询和嵌套查询的关系。2.WHERE与HAVING的区别。
本文标题:大学计算机-数据库实验E-5
链接地址:https://www.777doc.com/doc-7263004 .html