1、查询’CS’系的学生的成绩信息,包括学号,课程号,成绩。
SELECT sno,cno,grade
FROM sc_qfm
WHERE sno in(SELECT sno FROM student_qfm WHERE Sdept='cs')

2、查询李勇所选修的课程的课程名。
SELECT Cname
FROM course_qfm
WHERE Cno in
(SELECT cno FROM sc_qfm WHERE sno in
(SELECT Sno FROM student_qfm WHERE Sname='李勇'))

3、查询既选了1号课程又选了2号课程的学生学号。
SELECT sno
FROM sc_qfm
WHERE cno='1' and sno in
(SELECT sno
FROM sc_qfm
WHERE cno='2')

4、查询没有选修课程的学生的名单。 (提示:使用谓词NOT IN引导)
SELECT Sname
FROM student_qfm
WHERE Sno not in
(SELECT sno
FROM sc_qfm)

在批量向数据库导入数据时,并未设置无选修课程的学生导致本次嵌套查询结果为空
5、查询选修“Course {7}”课的全部学生的总成绩。
SELECT sum(grade) AS 课程总成绩
FROM sc_qfm
WHERE cno IN(SELECT Cno FROM course_qfm WHERE Cname='Course {7}')

6、统计学生选修表,显示学号为"2008001815"的学生在其各科成绩中,最高分成绩所对应的课程号和成绩。
SELECT cno,grade
FROM sc_qfm
WHERE sno='2008001818'
AND grade=
(SELECT max(grade) FROM sc_qfm WHERE sno ='2008001818')

思考:如果该学号学生有两个课程分数都为相同的最高分,查询会有什么结果?
查询结果中会出现两条结果均相同且为最高分,如图所示
SELECT cno,grade
FROM sc_qfm
WHERE sno='2008001815'
AND grade=
(SELECT max(grade) FROM sc_qfm WHERE sno ='2008001815')

7、查询数学系选修"Course {7}"课的所有学生的成绩之和。
SELECT sum(grade) AS 课程总成绩
FROM sc_qfm
WHERE cno IN(SELECT Cno FROM course_qfm WHERE Cname='Course {7}')
AND sno IN(SELECT Sno FROM student_qfm WHERE Sdept='MA')

8、查询数学系"伍洋"同学的"Course {7}"成绩。
SELECT grade AS 成绩
FROM sc_qfm
WHERE cno IN(SELECT Cno FROM course_qfm WHERE Cname='Course {7}')
AND sno IN(SELECT Sno FROM student_qfm WHERE Sdept='MA' AND Sname='伍洋')

9、查询学号为'2008001815’的学生没选的课程的课程号和课程名。
SELECT Cno,Cname
FROM course_qfm
WHERE Cno not in
(SELECT cno FROM sc_qfm WHERE sno='2008001815')

10、检索至少选修了两门课程的学生的信息,包括学号,姓名和所在系。 (提示:having)
SELECT Sno,Sname,Sdept
FROM student_qfm
WHERE Sno in
(SELECT sno FROM sc_qfm GROUP by sno HAVING count(cno)>=2)

使用EXISTS实现以下查询:
查询选修了课程的学生的名单。
可理解为:查找所有student表中存在于course表中的学生名单
SELECT Sname
FROM student_qfm
WHERE EXISTS
(SELECT sno
FROM sc_qfm)

查询学号为'2008001815'的学生没选的课程的课程号和课程名。
可理解为:查找所有student表中不存在于course表中的学号'2008001815'
SELECT Cno,Cname
FROM course_qfm
WHERE NOT EXISTS
(SELECT cno FROM sc_qfm WHERE sno='2008001815')

SELECT Cno,Cname
FROM course_qfm
WHERE EXISTS
(SELECT cno FROM sc_qfm WHERE sno='2008001815')

因未考虑有不被选择的课程导致使用NOT EXISTS查询时结果为空