SQL选择题求解答

图看得清吗……要选择哪一项?为什么?... 图看得清吗……要选择哪一项?为什么? 展开
 我来答
百度网友8dda61a
2015-07-06 · TA获得超过162个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:177万
展开全部
首先题目给出表格内容:
成绩表:学号,课程号,成绩。

学生表:学号,姓名。
课程表:课程号,课程名。

其表相关联需要使用序列键, 学生表(学号)<--成绩表(学号,成绩号)-->课程表(课程号)
关联表的方法:select [列名] from [表名][,表名] where [条件]
当数据来自多个表时,条件要对表与表之间的数据进行关联,学生.学号 = 成绩.学号。

从语法上讲 A,C,D语法正确。

下面看题目数据要求:
查询出没有选择"西方经济学"的学生学号和名字。
我觉得是考察数据范围的问题。
A答案使用的条件是IN,所以最后结果实际是成绩表中所有没有选择"西方经济学"的学生学号和名字。考虑到可能还有学生没有拿这门课,所以排除。因为他不是学生总集中的结果。

C答案使用的条件是not IN, 是使用学生总集中的所有学生学号和名字,所以正确。

D答案和A答案类似,涉及一点表关联的语法。D答案中的写法实际是 join all,即满足所有表的条件进行选择。所以跟A答案一样,结果集实际来自成绩表,而非学生表。

以上是我的答案,希望使您明白。
longrenyingdc8ecb1
推荐于2016-03-24 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2364万
展开全部
选择是正确的,选C。
A.没说一个学生可以选几门课,如果一个学生要选择两门,甚至更多的课,那么选择不等于西方经济学,那么你可能在其他科目选择到选西方经济学学生的学号。(比如,学生A的学号为01,他选择了西方经济学和数学,那么不等于西方经济学,可是你在数学上还是能够取到他的学号01)
B。这个没什么说的,连关联条件都没有的笛卡儿积不考虑
C。只要选了西方经济学,那么就排除,剩下的就是没选西方经济学的(即使一个人选两科,但是只要他的学号出现在西方经济学中,那么就排除他,那么就没有问题的)
D。与A问题相同
追问
懂了~谢谢啦。再问一下~A和D表达的是完全相同的意思吗?
追答
是一个意思
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式