问题
单项选择题
以下各题基于以下说明:设有如下图所示的两个关系S(sno,sname,sex)和SC(sno,cno,grade)。其中关系S的主码是sno,关系SC的主码是(sno,cno)。且关系SC的属性“no”是它的外码。要求grade的取值只能是0~100之间的整数。
关系 S 关系 SC
sno sname sex sno cno grade
S01 李红星 男 S01 C1 59
S10 洪宇宙 女 S01 C2 90
S20 张黎明 男 S03 NULL 120
有如下的SQL语句:
Ⅰ.SELECT sname FROM s.sc WHERE grade<60
Ⅱ.SELECT sname FROM s WriERE sno IN (SELECT sno FROM sc WHERE grade<60)
Ⅲ.SELECT sname FROM s.sc WHERE s.sno=sc.sno AND grade<60
若要查找分数(grade)不及格的学生姓名(sname),以上正确的有______。
A.Ⅰ和Ⅱ
B.Ⅰ和Ⅲ
C.Ⅱ和Ⅲ
D.Ⅰ、Ⅱ和Ⅲ
答案
参考答案:C
解析: 正确的SQL语句是Ⅱ和Ⅲ。Ⅱ中的语句是一个嵌套查询。先在关系SC中查找分数不及格的学生的学号并放在一个集合中,然后在关系S中查找该学号对应的学生姓名。Ⅲ中的语句利用了WHEKE子句常用的查询条件中的多重条件AND,即在S、SC中查询既满足s.sno=sc.sno又满足grade<60的sname。