栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql基础练习题19题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql基础练习题19题

###题目
练习sql下载:
1、查询每门课程被选修的学生数;
2、查询出只选修了一门课程的全部学生的学号和姓名;
3、查询男生、女生的人数;
4、查询姓“张”的学生名单;
5、查询同名同姓学生名单,并统计同名人数;
6、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列;
7、查询平均成绩大于85的所有学生的学号、姓名和平均成绩;
8、查询课程名称为“数学”,且分数低于60的学生姓名和分数;
9、查询课程编号为3且课程成绩在80分以上的学生的学号和姓名;
10、求选了课程的学生人数
11、查询选修“杨艳”老师所授课程的学生中,成绩最高的学生姓名及其成绩;
12、查询各个课程及相应的选修人数;
13、查询每门课程成绩最好的前两名;
14、检索至少选修两门课程的学生学号;
15、查询全部学生都选修的课程的课程号和课程名;
16、查询没学过“叶平”老师讲授的任一门课程的学生姓名;
17、查询两门以上不及格课程的同学的学号及其平均成绩;
18、检索编号为“4”的课程分数小于60,按分数降序排列的同学学号;
19、删除学号为“2”的同学的课程编号为“1”的成绩;

###答案

– 1、查询每门课程被选修的学生数;

SELECt course_id,COUNT(*) FROM score GROUP BY course_id;

– 2、查询出只选修了一门课程的全部学生的学号和姓名;

SELECt student_id,sname FROM student 
LEFT JOIN score ON student_id = student.sid
GROUP BY student_id HAVINg COUNT(*) = 1;

– 3、查询男生、女生的人数;

SELECt gender,COUNT(*) FROM student GROUP BY gender;

– 4、查询姓“张”的学生名单;

SELECt * FROM student WHERe sname LIKE '张%';

– 5、查询同名同姓学生名单,并统计同名人数;

SELECt sname,COUNT(*) FROM student GROUP BY sname HAVINg COUNT(*)>1;

– 6、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列;

SELECt course_id,cname,AVG(result)FROM course 
LEFT JOIN score ON course_id = cid
GROUP BY course_id ORDER BY AVG(result),course_id DESC;

–7、查询平均成绩大于85的所有学生的学号、姓名和平均成绩;

SELECt student_id,sname,AVG(result) FROM student 
LEFT JOIN score ON student_id = student.sid 
GROUP BY student_id HAVINg AVG(result) > 85;

– 8、查询课程名称为“数学”,且分数低于60的学生姓名和分数;

SELECt sname,result FROM score 
LEFT JOIN student ON student_id = student.sid
LEFT JOIN course ON course_id = cid
WHERe cname = '数学' AND result < 60;

– 9、查询课程编号为3且课程成绩在80分以上的学生的学号和姓名;

SELECt student_id,sname,course_id,cname,result FROM score 
LEFT JOIN student ON student_id = student.sid
LEFT JOIN course ON course_id = cid
WHERe course_id = 3;

– 10、求选了课程的学生人数

SELECt COUNT(*) FROM (
	SELECt student_id FROM score GROUP BY student_id HAVINg COUNT(*) > 0
) tmp;

– 11、查询选修“杨艳”老师所授课程的学生中,成绩最高的学生姓名及其成绩;


SELECt sname,result FROM course 
LEFT JOIN teacher ON teacher_id = tid
LEFT JOIN(
	SELECt sname,result,course_id FROM student 
	LEFT JOIN score ON student_id = student.sid
)tmp ON tmp.course_id = cid 
WHERe tname = '杨艳' ORDER BY result DESC LIMIT 1;

– 12、查询各个课程及相应的选修人数;

SELECt course_id,COUNT(*) FROM score GROUP BY course_id;

– 13、查询每门课程成绩最好的前两名;

SELECt course_id,student_id,result FROM score tmp
WHERe (
	SELECt COUNT(*) FROM score WHERe tmp.course_id = score.course_id
	AND tmp.result < score.result
) < 2 ORDER BY tmp.course_id, tmp.result DESC;

– 14、检索至少选修两门课程的学生学号;

SELECt student_id FROM score GROUP BY student_id HAVINg COUNT(*) >= 2;

– 15、查询全部学生都选修的课程的课程号和课程名;

SELECt course_id,cname FROM score 
LEFT JOIN course ON course_id = cid 
GROUP BY course_id 
HAVINg COUNT(*) = (
	SELECt COUNT(*) FROM student
)

– 16、查询没学过“叶平”老师讲授的任一门课程的学生姓名;

SELECt sname FROM student 
LEFT JOIN score ON student.sid = student_id
WHERe student_id NOT IN (
	SELECt student_id FROM score WHERe course_id IN(
		SELECt cid FROM course 
		LEFT JOIN teacher ON teacher_id = tid
		WHERe tname = '叶平'
)
)

– 17、查询两门以上不及格课程的同学的学号及其平均成绩;

SELECt student_id,AVG(result) FROM score 
WHERe result < 60 
GROUP BY student_id 
HAVINg COUNT(*) >= 2

– 18、检索编号为“4”的课程分数小于60,按分数降序排列的同学学号;

SELECt student_id,course_id,result FROM score 
WHERe course_id = 4 ORDER BY result DESC;

– 19、删除学号为“2”的同学的课程编号为“1”的成绩;

DELETe FROM score WHERe student_id = 2 AND course_id = 1
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294889.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号