sql题目,搞不清楚,弄晕了,求大神?
3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN...
3个表即学生表S、课程表C和学生选课表SC,它们的结构如下:
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE成绩
查询所有没有被学生选过的课程的名称,正确的SELECT语句是(BD)。
A. SELECT C.CN FROM C JOIN SC ON SC.C#=C.C# WHERE C.C# IS NULL
B. SELECT C.CN FROM C LEFT JOIN SC ON SC.C#=C.C# WHERE SC.C# IS NULL
C. SELECT C.CN FROM SC LEFT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
D. SELECT C.CN FROM SC RIGHT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
怎么答案是bd,我感觉都是对的 展开
S(S#,SN,SEX,AGE,DEPT)
C(C#,CN)
SC(S#,C#,GRADE)
其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,GRADE成绩
查询所有没有被学生选过的课程的名称,正确的SELECT语句是(BD)。
A. SELECT C.CN FROM C JOIN SC ON SC.C#=C.C# WHERE C.C# IS NULL
B. SELECT C.CN FROM C LEFT JOIN SC ON SC.C#=C.C# WHERE SC.C# IS NULL
C. SELECT C.CN FROM SC LEFT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
D. SELECT C.CN FROM SC RIGHT JOIN C ON SC.C#=C.C# WHERE SC.C# IS NULL
怎么答案是bd,我感觉都是对的 展开
3个回答
展开全部
课程表是主表,左联结选课表的时候,条件是课程号相同,如果有课程未被选中则选课表的结果中就会出现NULL
A内联,NULL这种情况根本出不来
C选课表为主表,如果有的话就是说有课程根本不存在
B,D写法不一样,一个左联一个右联,结果是一样的
A内联,NULL这种情况根本出不来
C选课表为主表,如果有的话就是说有课程根本不存在
B,D写法不一样,一个左联一个右联,结果是一样的
追问
晕,你好厉害阿,我理解不了,脑子笨吧。能有具体例子,在sql运行一下吗
追答
举个例子
C 两条记录
(C#,CN)
1,a
2, b
-------------------------------
SC 两条记录
(S#,C#,GRADE)
1,1,100
2,1,50
A的结果为空,因为这两个表结合后不存在NULL的数据
B和D的结果就是2,因为没人选2的课程
C的结果也为空,所选的课程1是存在的
手头没数据库,没法给你实际操作
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想知道什么额,答案很明显嘛。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询