8. 查询选修了“数据库”学生的学号姓名,分别用嵌套和连接的方法,观察两种方法所用的时间。 嵌套查询 连接查询 第11页 共18页
分析原因:连接查询的时间比嵌套查询的时间长: 原因:在相同条件下SQL的速度跟生成结果集关系较大,结果集越多速度越慢,一般连接会比嵌套产生更少的结果集(每级嵌套会生成一个结果集) 9. 将实验1中和实验2中各个操作在student1,course1,sc1上运行,观察各个操作所需时间。 (1)查询平均成绩60分以上的学生的学号。 第12页 共18页
(2)求计算机系没有选修数据库课程的学生姓名。 select sname from Student1 where Sno not in (select Sno from SC1 where Cno in (select Cno from Course1 where Sname='数据库系统' ))and Sdept='计算机' 第13页 共18页
(3)求至少选修了学号为S1所选修的全部课程的学生学号。 select distinct sno from SC1 sc1x where not exists (select * from SC1 sc1y where sc1y.Sno='1997000194' and not exists(select * from sc1 sc1z where sc1z.sno=sc1x.sno and sc1y.Cno=sc1z.Cno )) 第14页 共18页
(*查询时间过长终止查询。) (4)求各系的系的学生人数的,并将结果按学生人数的降序排序。 select Sdept ,COUNT(sno)from Student1 group by Sdept order by Sdept ASC 第15页 共18页