经典的学生选课sql语句

经典的学生选课sql语句

ID:8849960

大小:41.00 KB

页数:2页

时间:2018-04-09

经典的学生选课sql语句_第1页
经典的学生选课sql语句_第2页
资源描述:

《经典的学生选课sql语句》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、经典SQL问题“查询选修全部课程的学生姓名”。最后问什么还要廉洁SC表和S表?100分标签:选修sc课程学生where回答:2 浏览:1308 提问时间:2010-10-0423:45请教各位大侠:问题是:最后一句话select*fromSCwhereSnum=S.SnumandCnum=C.Cnum中为什么还要连接SC表和S表?在SQL中试了试,不要Snum=S.Snum结果是一样的。而且从连接操作的角度看也是没必要连接的。因为SC表里面已经有Snum了。连接完无非是生成了一个把SC和S连接起来的新表:这个新的表行数和

2、SC表一样。只是在SC的每一行都加上了了S里的属性:Sname,Ssex,Sage,Dnum。所以不明白为什么需要连接S表。有学生选课关系S(Snum,Sname,Ssex,Sage,Dnum)SnumSnameSexAgeSDS001王明男19D2S002李勇男23D3S003刘燕女21D1S004王萍女23D1S005王佳男24D3S006赵婷女20D1SC(Snum,Cnum,Score)SnumCnumScoreS001C183S001C289S001C365S001C485S001C585S002C369S00

3、2C475S003C195S004C185S005C292S005C376C(Cnum,Cname,Cfreq)CnumCnameCfreqC1数据库系统原理4C2C程序设计4C3计算机体系结构3C4自动控制原理2C5数据结构4比如查询选修全部课程的学生姓名selectSnamefromSwherenotexists(select*fromCwherenotexists(select*fromSCwhereSnum=S.SnumandCnum=C.Cnum))结果是王明共0条评论...推荐资料:安意如《人生若只如初见》.

4、txt更多"安意如"相关资料>>最佳答案此答案由提问者自己选择,并不代表爱问知识人的观点揪错┆评论┆举报Kevin[大师]我大致看了一下,是嵌套查询吧!你应该这样理解:select*fromSCwhereSnum=S.SnumandCnum=C.Cnum这句语句的意思是:从SC表中选择学生号与S表中的学生号相同,且课程号与C表中的课程号相同。即学生号与课程号都必须存在于它们自己的表中(S表和C表)!不这样写,可能会把不存在的学生号或者课程号返回出来,造成结果错误。虽然,可能与结果无异,但这样写是完整性约束的表述,相当有必

5、要。如果之前做过表间关联(S表的Snum,C表的Cnum,SC表的Snum和Cnum),那么这一步的数据一致性校验可以不做(表关联可以使不符合的数据无法输入到表中,从而在查询时也不会出现数据不一致的问题)。你再理解一下,有不明白的地方,欢迎讨论。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。