题目:
有3个表S(学生表),C(课程表),SC(学生选课表)
S(SNO,SNAME)代表(学号,姓名)
C(CNO,CNAME,CTEACHER)代表(课号,课名,教师)
SC(SNO,CNO,SCGRADE)代表(学号,课号,成绩)
请先建立这三张表,然后回答问题:
1,找出没选过“黎明”老师的所有学生姓名。
2,列出2门以上(含2门)不及格学生姓名及平均成绩。
3,既学过1号课程又学过2号课所有学生的姓名。
建表:
create table S(
sno int(4) primary key auto_increment,
sname varchar(25)
);
create table C(
cno int(4) primary key auto_increment,
cname varchar(25),
ctracher varchar(25)
);
create table SC(
sno int(4),
cno int(4),
scgrade double(3,1),
constraint sc_sno_cno_pk primary key(sno,cno),
constraint sc_sno_fk foreign key(sno) references s(sno),
constraint sc_cno_fk foreign key(cno) references c(cno)
);
1、首先找黎明老师所授课程号,然后再找选了此课程号的学号,最后从学生表中排除掉这些学号
select sno from s
where sno not in
(select sno from sc
where cno = (select cno from c where cteacher = '黎明'))

根据给定的S、C、SC三张表,题目要求找出未选过黎明老师课程的学生,平均成绩低于60分且修了2门以上课程的学生,以及同时学过1号和2号课程的学生。解决方案涉及多步SQL查询,包括临时表的使用和联接操作。
最低0.47元/天 解锁文章
781





