问题 单项选择题

对于基本表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课程的元组了。

单项选择题
单项选择题 案例分析题