问题
单项选择题
对于基本表S(S#,NAME,SEX,BIRTHDAY)和SC(S#,C#,GRADE),其中S#,NAME,SEX, BIRTHDAY,C#和GRADE分别表示学号、姓名、性别、生日、课程号和成绩。
有一SQL语句:
SELECT S# NAME
FROM S
WHERE S# NOT IN
(SELECT S#
FROM S
WHERE C#='c102');
其等价的关系代数表达式是()。
A.A
B.B
C.C
D.D
答案
参考答案:B
解析:
本题中的SQL语句的功能是查询没有选修课程号为c102的课程的学生的学号和姓名。这主要涉及自然连接的概念,若在等值连接时把目标列中重复的属性列删除则称为自然连接。在选项B中,S和SC进行自然连接后,再进行选择操作(选出课程号等于c102),这样,凡是选修了c102课程的元组都会被选择出来,然后用投影后的S去减选修了c102课程的元组,余下的就是没有选修c102课程的元组了。