45道经典SQL题练习(三)

-- 21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT * FROM SCORE
WHERE DEGREE>(SELECT DEGREE FROM SCORE
WHERE SNO='109' AND CNO='3-105');

-- 22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。
SELECT SNO,SNAME,SBIRTHDAY FROM STUDENT
WHERE YEAR(SBIRTHDAY)=(SELECT YEAR(SBIRTHDAY) FROM STUDENT
WHERE SNO='108');

-- 23、查询“张旭“教师任课的学生成绩。
SELECT SNO,DEGREE,TNAME FROM SCORE,COURSE,TEACHER
WHERE TEACHER.TNO=COURSE.TNO
AND COURSE.CNO=SCORE.CNO
AND TEACHER.TNAME='张旭';

-- 24、查询选修某课程的同学人数多于5人的教师姓名。
SELECT TNAME FROM COURSE,TEACHER
WHERE COURSE.TNO=TEACHER.TNO
AND CNO=(SELECT CNO FROM SCORE
GROUP BY CNO
HAVING COUNT(CNO)>5);

-- 25、查询95033班和95031班全体学生的记录。
SELECT * FROM STUDENT,SCORE,COURSE
WHERE SCLASS='95033'
OR SCLASS='95031'
AND STUDENT.SNO=SCORE.SNO
AND SCORE.CNO=COURSE.CNO;

-- 26、查询存在有85分以上成绩的课程Cno.
SELECT CNO FROM SCORE
WHERE DEGREE>85
GROUP BY CNO;

-- 27、查询出“计算机系“教师所教课程的成绩表。
SELECT CNAME FROM COURSE,TEACHER
WHERE COURSE.TNO=TEACHER.TNO
AND DEPART='计算机系';

-- 28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
SELECT TNAME,PROF FROM TEACHER
WHERE DEPART='计算机系'
AND PROF NOT IN (SELECT PROF FROM TEACHER WHERE DEPART='电子工程系')
UNION
SELECT TNAME,PROF FROM TEACHER
WHERE DEPART='电子工程系'
AND PROF NOT IN (SELECT PROF FROM TEACHER WHERE DEPART='计算机系');

-- 29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,并按Degree从高到低次序排序。
SELECT CNO,SNO,DEGREE FROM SCORE
WHERE CNO='3-105'
AND DEGREE> ANY(SELECT DEGREE FROM SCORE WHERE CNO='3-245')
ORDER BY DEGREE DESC;

-- 30、查询选修编号为“3-105”且成绩高于选修编号为“3-245”课程的同学的Cno、Sno和Degree.
SELECT CNO,SNO,DEGREE FROM SCORE
WHERE CNO='3-105'
AND DEGREE>ALL(SELECT DEGREE FROM SCORE WHERE CNO='3-245');

猜你喜欢

转载自blog.csdn.net/qq_41996090/article/details/83039214
今日推荐