SQL语言-小练习.ppt
2023/11/8,南晓数信学院,1,小练习,2023/11/8,南晓数信学院,2,根据题意书写SQL 查询,1.查询201002班男生的信息2.查询计算机网络课(课程号为C403001)成绩为85分,88分或90分的学生的学号3.查询2010001班的学生的人数(提示:聚合函数)4.查询最低分大于70、最高分小于90的学生的号号.(提示:按学号分组)5.查询至少有5名学生选修的并以3开头的课程的课程号和平均分(提示:按课程号分组,使用LIKE条件表达式),2023/11/8,南晓数信学院,3,6.查询所有女生记录,并以班级降序排列7.统计每门课程的学生选取修人数(超过10人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。8.查询成绩在85分以上的学生姓名及所学课程号和成绩(提示:此处涉及s,sc两表。9.查询选取修数据结构课程的学生姓名及所在专业代码。(提示:此处涉及s,sc,c三表)10.查询选取修了课程号为C403001课程的学生姓名、性别和专业代码。(提示:可使用嵌套查询),2023/11/8,南晓数信学院,4,1查询201002班男生的信息select*from swhere class=201002 and ssex=男,2023/11/8,南晓数信学院,5,2查询计算机网络课(课程号为C403001)成绩为85分,88分或90分的学生的学号select s#from scwhere c#=c403001 and grade in(85,88,90),2023/11/8,南晓数信学院,6,3.查询2010001班的学生的人数(提示:聚合函数)select count(*)from swhere class=2010001,2023/11/8,南晓数信学院,7,4.查询最低分大于70、最高分小于90的学生的号号.(提示:按学号分组)select s#from scgroup by s#having min(grade)70 and max(grade)90,2023/11/8,南晓数信学院,8,5.查询至少有5名学生选修的并以3开头的课程号的平均分(提示:按课程号分组,使用LIKE条件表达式)select c#,avg(grade)from scwhere c#like 3%group by c#having count(*)=5,2023/11/8,南晓数信学院,9,6.查询所有女生记录,并以班级降序排列select*from swhere ssex=女order by class desc,2023/11/8,南晓数信学院,10,7.统计每门课程的学生选取修人数(超过10人的课程才统计),要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。select c#,count(s#)from scgroup by c#having count(*)10order by count(s#)desc,c#asc;,2023/11/8,南晓数信学院,11,8.查询成绩在85分以上的学生姓名及所学课程号和成绩(提示:此处涉及s,sc两表。select sname,c#,gradefrom s,scwhere s.s#=sc.s#and grade=85,2023/11/8,南晓数信学院,12,9.查询选取修数据结构课程的学生姓名及所在专业代码。(提示:此处涉及s,sc,c三表)select sname,scode#from s,sc,cwhere s.s#=sc.s#and sc.c#=c.c#and cname=数据结构;,2023/11/8,南晓数信学院,13,10.查询选取修了课程号为C403001课程的学生姓名、性别和专业代码。(提示:可使用嵌套查询)答案1:select sname,ssex,scode#from swhere s#in(select s#from sc where c#=c403001),2023/11/8,南晓数信学院,14,答案2:select sname,ssex,scode#from swhere s#=some(select s#from sc where c#=c403001),2023/11/8,南晓数信学院,15,答案3:select sname,ssex,scode#from swhere exists(select*from sc where s.s#=sc.s#and c#=c403001);,2023/11/8,南晓数信学院,16,追求,休息一下!,