2.检索没有选修课程名为“Math”的学生学号与姓名,请写出SQL语句
时间: 2024-05-10 17:15:47 浏览: 129
假设学生表为students,选修课程表为courses,选课关系表为sc,可以使用如下SQL语句检索没有选修课程名为“Math”的学生学号与姓名:
```
SELECT s.sid, s.sname
FROM students s
WHERE s.sid NOT IN (
SELECT sc.sid
FROM sc, courses c
WHERE sc.cid = c.cid AND c.cname = 'Math'
);
```
其中,子查询的作用是查询选修了课程名为“Math”的学生学号,然后在外层查询中使用 NOT IN 运算符排除这些学生。
相关问题
学生表 S(SNO,SNAME,AGE,SEX,SDEPT); 学生、课程、成绩表 SC(SNO,CNO,GRADE); 课程表 C(CNO,CNAME,CDEPT,TNAME); 1. 检索出所有学生及其课程 “Math”的考试成绩单(注意:并非所有学生都有参加了 课程“Math”的考试),请写出 SQL 语句 2. 检索没有选修课程名为“Math”的学生学号与姓名,请写出 SQL 语句
1 SELECT SNAME, GRADE FROM S, SC, C WHERE S.SNO = SC.SNO AND C.CNO = SC.CNO AND CNAME = 'Math';
2. SELECT SNAME, SNO FROM S WHERE SNO NOT IN (SELECT SNO FROM SC, C WHERE SC.CNO = C.CNO AND CNAME = 'Math');
阅读全文