sql语句查询学生姓名(用SQL语句查询选修了c课程的学生姓名和只选修了c课程的学生姓名)

本文目录
用SQL语句查询选修了c课程的学生姓名和只选修了c课程的学生姓名
假设数据结构为
students(sid,sname)
sc(sid,cname)
1)选修了C课程的学生姓名
select distinct a.sname from students a,sc b
where a.sid=b.sid and b.cname=’C’;
2)只选修了C课程的学生姓名
select s.sname from students s,
(select a.sid from
(select distinct sid from sc
where cname=’C’) a left join
(select distinct sid from sc
where cname《》’C’) b on
a.sid=b.sid where b.sid is null) t
where s.sid=t.sid;
前者只要选修了C课程的学生就会被选出,不管该学生是否选修了其他课程。
后者某学生如果选修了C课程,还不一定能被选出,因为若他(她)还选修了其他课程那么还会被剔除掉。
"选修了C课程的学生"是"只选修C课程的学生"的父集,前者包含后者,或者说后者是前者的子集。
写一个SQL语句,查询选修了5门课程的学生学号和姓名
select s.学号,s.姓名 from Student s, Sc
where s.学号=Sc.学号
group by s.学号,s.姓名
having count(sc.课程编号)=5;
---
以上,希望对你有所帮助。

更多文章:
ajax提交form表单数据到servlet(HTML与Servlet的连接)
2025年12月7日 10:30
批量转换ascii(如何把txt 批量从utf8转换为ascii,最好有工具)
2025年11月18日 04:30
postgresql 创建用户(postgresql如何用新创建的用户登录呢)
2026年1月28日 16:30
工程师一个月能赚多少钱(造价工程师一般月收入是多少 需求量大吗)
2026年7月4日 11:00
delphi led扩展屏显示开发(用DELPHI模拟LED屏下的那种文字特效怎么做)
2025年12月17日 14:30
download是什么意思可以删除吗(Download什么意思,Download的文件夹能删了吗,)
2026年7月27日 03:15
trousers后面单复数(The+trousers用不用三单)
2026年5月7日 03:00
linux是自由软件吗(Linux是自由软件,什么是自由软件,它包含哪些含义)
2026年4月14日 08:15
springmvc答辩问题(我的毕业设计是JSP+mysql+Tomcat搭建的一个管理系统,答辩老师问我是怎么设计的,我应该)
2025年11月16日 05:00














