实验八:数据库的分组查询和统计查询
实验目的:
熟练掌握数据查询中的分组、统计、计算和集合的操作方法。
实验内容:
使用聚集函数查询、分组计算查询、集合查询。
实验步骤:
一. 使用聚集函数:
查询学生总人数:
select count(*)学生总人数from student
2. 查询选修了课程的学生总数:
select count(DISTINCT sno)选修了课程的学生人数from sc
3. 查询所有课程的总学分数和平均学分数,以及最高学分和最低学分:
select sum(credit)总学分,avg(grade)平均学分,max(grade)最高学分,min(grade)最低学分from course,sc
where sc.cno=course.cno
4. 计算1号课程的学生的平均成绩, 最高分和最低分:
select avg(grade)平均分,max(grade)最高分,min(grade)最低分from sc,course
where sc.cno=course.cno and course.cno='1'
5. 查询’信息系’(IS)学生”数据结构”课程的平均成绩:
select course.cname 课程名,avg(grade)平均分from course,sc
where cname='数据结构'
group by cname
6*. 查询每个学生的课程成绩最高的成绩信息(sno,cno,grade):
select * from sc A where grade=
(select max(grade) from sc where sno=A.sno )
7*. 求成绩低于该门课程平均成绩的学生的成绩信息(sno,cno,grade)
select * from sc A where grade<
(select avg(grade) from sc where cno=A.cno )
8.查询所有学生的平均年龄,最大年龄及最小年龄
select sname 姓名,avg(sage)平均年龄,max(sage)最大年龄,min(sage)最小年龄from student
group by sname
9.查询计科系(CS)学生“数学”课的最高分及最低分
select max(grade)最高分,min(grade)最低分from sc,course,student
where sdept='CS' and cname='数学' and sc.cno=course.cno and student.sno=sc.sno
10.查询选修“数学”课程的学生成绩比此课程的平均成绩小的学生学号及成绩
Select sno,grade from sc where grade<(select avg(grade) from sc,course where course.cno=sc.cno and cname=’数学’)
实验目的:
熟练掌握数据查询中的分组、统计、计算的操作方法。
实验内容:
使用聚集函数查询、分组计算查询。
实验步骤:
一. 使用聚集函数:
查询学生总人数:
select count(*) from student
2. 查询选修了课程的学生总数:
select count(distinct sno) from sc
3. 查询所有课程的总学分数和平均学分数,以及最高学分和最低学分:
4. 计算1号课程的学生的平均成绩, 最高分和最低分:
5. 查询’信息系’(IS)学生”数据结构”课程的平均成绩:
6.查询计科系(CS)学生“数学”课的最高分及最低分
二. 分组查询
7. 查询各系的学生的人数并按人数从多到少排序 :
select sdept 系名,count(sno)总人数from student
group by sdept
order by count(sno) desc
8. 查询各系的男女生学生总数, 并按系别,升序排列, 女生排在前:
select sdept,ssex,Count(*) 人数from student
group by sdept, ssex