实验D 02: 单表查询实验 七、设计性实验 1.实验要求 (1)查询计算机系学生的学号和姓名。 Select sno,sname from s where dept=’ 计算机系’ (2)查询选修了课程的学生学号。 Select distinct sno from sc (3)查询选修C01 课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如 果成绩相同则按学号的升序排列。 ]select sno,grade from sc where cno=’C01’ order by grade desc, sno (4)查询每门课程的平均分。 Select cno,avg(grade) from sc group by cno (5)查询学校开设的课程总数。 Select count(distinct cno) from sc (6)查询选修两门及两门以上课程的学生学号。 Select sno from sc group by sno Having count(cno)>=2 (7)查询年龄在20-22之间的男生的学号、姓名、系部。 Select sno,sname, dept from s where sex=’男’ and age between 20 and 22 (8)查询选修‘C01’课程的学生人数。 Select count(sno) from sc w here cno=’C01’ 3.思考题 (1)使用ORDER BY子句后SELECT后的数据列有什么限制吗?使用GROUP BY 呢? 答:使用ORDER BY子句后SELECT后的数据列没有限制,而使用GROUP BY字句后SELECT后的数据列只能是group by后跟的数据列和聚集函数。 (2)执行select max(grade) from sc, 写出执行结果;执行 select sno, max(grade) from sc group by sno,写出执行结构。思考:使用GROUP BY<分组条件>子句后,语句中的统计函数的运行结果有什么不同? 执行 select max(grade) from sc只有一个结果,整个选课表的平均成绩,而 select sno, max(grade) from sc group by sno显示的是每个学生的选课平均成绩,使用 group by字句后,根据其后的字段对数据表进行分组,再对每一个组进行分组统计。 实验D 03: 多表查询实验 七、设计性实验 1.实验要求 (1)查询“计算机系“学生所选课程的成绩表。 Select sno,sname, cno,cname ,grade from s,sc,c where s.sno=sc.sno and sc.cno=c.cno and dept=’ 计算机系’ (2)查询成绩比该课程平均成绩低的同学的成绩表。 Select sno,cno,grade from sc sc1 where grade<(select avg(grade) from sc sc2 where sc1.cno=sc2.cno) (3)查询选修C01 课程的学生学号、课程名、成绩,并要求对查询结果按学号的降...