从这里开始,题目难度明显下降。从这里能找到些许自信
题目以及建表语句sql等在本系列的第一篇文章,请自取
21 查询男生、女生人数
select ssex, count(*) from student
group by ssex;
22 查询名字中含有「风」字的学生信息
select *
from student
where student.Sname like '%风%'
23 查询同名学生名单,并统计同名人数 找到同名的名字并统计个数
select sname, count(*) from student
group by sname
having count(*)>1;
24 查询 1990 年出生的学生名单
select *
from student
where YEAR(student.Sage) > 1990 and YEAR(student.Sage) < 2000;
25 查询每门课程的平均成绩,结果按平均成绩降序排列,平均成绩相同时,按课程编号升序排列
SELECT sc.cid,course.cname,avg(score) as '平均分' from sc LEFT JOIN course
on sc.cid = course.cid
GROUP BY sc.cid
ORDER BY avg(score) DESC,sc.cid ASC
26 查询平均成绩大于等于 85 的所有学生的学号、姓名和平均成绩
select student.sid, student.sname, AVG(sc.score) as aver from sc
LEFT JOIN student ON student.sid = sc.sid
group by sc.sid
having aver >= 85;
select student.sid, student.sname, AVG(sc.score) as aver from student, sc
where student.sid = sc.sid
group by sc.sid
having aver >= 85;
27 查询课程名称为「数学」,且分数低于 60 的学生姓名和分数
select student.sid,sc.cid,course.cName, student.sname, sc.score from student
LEFT JOIN sc ON student.sid = sc.sid
LEFT JOIN course ON course.cid = sc.cid
WHERE course.cName = '数学' and score < 60
28 查询所有学生的课程及分数情况(存在学生没成绩,没选课的情况)
SELECT student.sname,course.Cname,sc.score FROM
student LEFT JOIN sc
ON student.sid = sc.sid
LEFT JOIN
course ON sc.cid = course.cid
29 查询任何一门课程成绩在 70 分以上的姓名、课程名称和分数
SELECT student.sname,course.Cname,sc.score FROM
student LEFT JOIN sc
ON student.sid = sc.sid
LEFT JOIN
course ON sc.cid = course.cid
WHERE sc.score > 70
30 查询存在不及格的课程
select DISTINCT cid from sc
where score< 60