/*查询每门课的平均成绩*/ SELECT cno,AVG(degree) FROM score GROUP BY cno; /*查询Score表中至少有5名学生选修的并以3开头的课程的平均分数*/ SELECT AVG(degree) FROM score WHERE cno=( SELECT cno FROM score GROUP BY cno HAVING COUNT(*)>5 AND cno LIKE '3%' ) /*查询分数大于70,小于90的Sno列*/ SELECT sno FROM score WHERE degree>70 AND degree<90; /*查询所有学生的Sname、Cno和Degree列*/ SELECT sname,cno,degree FROM score JOIN student ON score.`sno`=student.sno; /*查询所有学生的Sno、Cname和Degree列*/ SELECT student.sno,cname,degree FROM score JOIN student ON score.`sno`=student.`sno` JOIN course ON score.`cno`=course.`cno` /*查询所有学生的Sname、Cname和Degree列*/ SELECT sname,cname,degree FROM score JOIN student ON score.`sno`=student.`sno` JOIN course ON score.`cno`=course.`cno` /*查询“95033”班学生的平均分*/ SELECT AVG(degree) FROM score JOIN student ON score.`sno`=student.`sno` GROUP BY class HAVING class='95033' /*查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录*/ SELECT * FROM score JOIN student ON score.`sno`=student.`sno` WHERE degree>(SELECT degree FROM score WHERE sno='109' AND cno='3-105') AND cno='3-105'; /*查询score中选学多门课程的同学中分数为非最高分成绩的记录*/ SELECT * FROM score GROUP BY sno HAVING degree NOT IN ( SELECT MAX(degree) FROM score GROUP BY cno ) /*查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列*/ SELECT sno,sname,sbirthday FROM student WHERE sbirthday LIKE '1977%'; /*查询“张旭“教师任课的学生成绩(姓名)*/ SELECT sno,degree FROM score WHERE cno=( SELECT cno FROM course WHERE tno=( SELECT tno FROM teacher WHERE teacher.`tname`='张旭' ) ) /*查询考计算机导论的学生成绩*/ SELECT sno,degree FROM score JOIN course ON score.`cno`=course.`cno` WHERE cname='计算机导论' /*查询李诚老师教的课程名称*/ SELECT cname FROM course WHERE tno=( SELECT tno FROM teacher WHERE tname='李诚' ) /*教高等数学的老师是哪个系的*/ SELECT depart FROM teacher WHERE tno=( SELECT tno FROM course WHERE cname='高等数学' ) /*查询选修某课程的同学人数多于5人的教师姓名*/ SELECT teacher.`tname` FROM course JOIN teacher ON course.`tno`=teacher.`tno` WHERE cno = ( SELECT course.cno FROM score JOIN student ON score.`sno`=student.`sno` JOIN course ON score.`cno`=course.`cno` GROUP BY course.`cno` HAVING COUNT(*)>5 ) /*查询95033班和95031班全体学生的记录*/ SELECT * FROM score JOIN student ON score.`sno`=student.`sno` JOIN course ON score.`cno`=course.`cno` /*查询存在有85分以上成绩的课程Cno*/ SELECT course.cno FROM score JOIN course ON score.`cno`=course.`cno` WHERE degree>85 /*查询出“计算机系“教师所教课程的成绩表*/ SELECT degree FROM score WHERE cno IN( SELECT cno FROM course JOIN teacher ON course.`tno`=teacher.`tno` WHERE depart='计算机系' ) /*查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学 的Cno、Sno和Degree,并按Degree从高到低次序排序*/ SELECT * FROM score WHERE cno='3-105' AND degree>( SELECT MAX(degree) FROM score WHERE cno='3-245' ) ORDER BY degree DESC /*查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学 的Cno、Sno和Degree*/ SELECT * FROM score WHERE cno='3-105' AND degree>( SELECT MAX(degree) FROM score WHERE cno='3-245' ) /*查询所有教师和同学的name、sex和birthday*/ SELECT * FROM student JOIN score ON student.`sno`=score.`sno` JOIN course ON score.`cno`=course.`cno` JOIN teacher ON course.`tno`=teacher.`tno` SELECT * FROM student /*查询所有“女”教师和“女”同学的name、sex和birthday*/ SELECT * FROM score JOIN student ON score.`sno`=student.`sno` JOIN course ON score.`cno`=course.`cno` JOIN teacher ON course.`tno`=teacher.`tno` WHERE (ssex='女'AND tsex<>'男') OR (tsex='女' AND ssex<>'男') /*查询成绩比该课程平均成绩低的同学的成绩表*/ SELECT * FROM score WHERE (cno='3-105'AND degree<(SELECT AVG(degree) FROM score GROUP BY cno HAVING cno='3-105')) OR(cno='3-245'AND degree<(SELECT AVG(degree) FROM score GROUP BY cno HAVING cno='3-245')) OR(cno='6-166'AND degree<(SELECT AVG(degree) FROM score GROUP BY cno HAVING cno='6-166')) /*查询所有任课教师的Tname和Depart*/ SELECT tname,depart FROM course JOIN teacher ON course.`tno`=teacher.`tno` /*查询所有未讲课的教师的Tname和Depart*/ SELECT tname,depart FROM teacher WHERE teacher.`tno` NOT IN ( SELECT course.`tno` FROM course JOIN teacher ON course.`tno`=teacher.`tno` ) /*查询至少有2名男生的班号*/ SELECT class FROM student GROUP BY class HAVING COUNT(*)>=2 /*查询Student表中不姓“王”的同学记录*/ SELECT * FROM student WHERE sname NOT IN ( SELECT sname FROM student WHERE sname LIKE '王%' ) /*查询Student表中每个学生的姓名和年龄*/ SELECT sname,YEAR(NOW())-YEAR(sbirthday) AS age FROM student /*查询Student表中最大和最小的Sbirthday日期值*/ SELECT MAX(sbirthday),MIN(sbirthday) FROM student /*以班号和年龄从大到小的顺序查询Student表中的全部记录*/ SELECT class,YEAR(NOW())-YEAR(sbirthday) AS age FROM student ORDER BY class ASC,age ASC /*查询“男”教师及其所上的课程*/ SELECT tname,cname FROM course JOIN teacher ON course.`tno`=teacher.`tno` WHERE teacher.`tsex`='男' /*查询最高分同学的Sno、Cno和Degree列*/ SELECT student.sno,cno,degree FROM score JOIN student ON score.`sno`=student.`sno` WHERE degree=( SELECT MAX(degree) FROM score ) /*查询和“李军”同性别的所有同学的Sname*/ SELECT sname FROM student WHERE ssex=( SELECT ssex FROM student WHERE sname='李军' ) /*查询和“李军”同性别并同班的同学Sname*/ SELECT sname FROM student WHERE ssex=(SELECT ssex FROM student WHERE sname='李军') AND class=(SELECT class FROM student WHERE sname='李军') /*查询所有选修“计算机导论”课程的“男”同学的成绩表*/ SELECT * FROM score JOIN student ON score.`sno`=student.`sno` JOIN course ON score.`cno`=course.`cno`
MySQL-习题 下
猜你喜欢
转载自www.cnblogs.com/yelena-niu/p/9006966.html
今日推荐
周排行