SELECT SNO,CNO AS'课程号',NEWGRADE FROM sc WHERE NEWGRADE BETWEEN60AND89ORDERBY NEWGRADE DESC;
左连接查询所有学生的选课信息。
SELECT c.SNO,stu.SNAME,c.CNO,c.NEWGRADE FROM sc c LEFTJOIN student stu ON c.SNO=stu.SNO;
右连接查询选课的学生的基本信息。
SELECT stu.SNO, stu.SNAME, stu.SEX, stu.age, c.CNO, c.NEWGRADE FROM sc c RIGHTJOIN student stu ON c.SNO=stu.SNO;
查询选修课成绩在60分以下的学生姓名、性别、年龄。
SELECT SNAME,SEX,age FROM student WHERE SNO IN(SELECT SNO FROM sc WHERE NEWGRADE>60);
查询各门课程取得最高成绩的学生姓名及其成绩。
SELECT s.SNAME,c.CNO,c.NEWGRADE FROM(SELECT CNO,max(NEWGRADE) maxg FROM sc GROUPBY CNO) a,student s,sc c WHERE a.CNO=c.CNO AND a.maxg=c.NEWGRADE AND c.SNO=s.SNO;
查询选修了某门课程的学生的基本信息。
SELECT s.SNO,s.SNAME,s.SEX,s.age,c.CNO FROM student s,sc c WHERE c.CNO IN(SELECT CNO FROM sc WHERE CNO=课程号)AND s.SNO=c.SNO;
查询选修了某位老师开设的课程的学生的信息以及相应的成绩。
SELECT s.SNAME,s.SEX,s.age,c.NEWGRADE,e.CNAME FROM(SELECT TNO,TNAME FROM newteacher WHERE TNAME='老师'GROUPBY TNO) n,student s,sc c,course e WHERE n.TNO=e.TNO AND e.CNO=c.CNO AND c.SNO=s.SNO;
当某一门课程的平均成绩大于85分时,查询选择该门课程学生的基本信息,否则不查询
SELECT s.SNAME,s.SEX,s.age FROM(SELECT SNO,avg(NEWGRADE) avgg FROM sc GROUPBY SNO) a,student s,sc c,course e WHERE a.SNO=c.SNO AND a.avgg=c.NEWGRADE AND c.SNO=s.SNO AND c.CNO=e.CNO;