设有关系模式SC(sno,cno,grade),查询既选修了c1又选修了c2课程的学生学号,正确的SQL命令是

admin2011-06-22  27

问题 设有关系模式SC(sno,cno,grade),查询既选修了c1又选修了c2课程的学生学号,正确的SQL命令是

选项 A、SELECT sno FROM sc WHERE cno=“c1“AND cno=“c2“
B、SELECT sno FROM sc WHERE cno=“c1“AND SELECT sno FROM sc WHERE cno=“c2“
C、SELECT sno FROM sc WHERE cno=“c1“UNION SELECT sno FROM sc WHERE cno=“c2“
D、SELECT sno FROM sc WHERE cno=“c1“AND sno IN(SELECT sno FROM sc WHERE cno=“c2“)

答案D

解析 选项A查找cno同时等于”c1”和”c2”的记录,是找不到任何记录的;选项B的表达式是错误的,不能直接将两个查询语句连接在一起作为一个查询语句;选项C查询的是cno等于”c1”或者等于”c2”的记录,与题意不符;只有选项D的用法是正确的,先查找所有选修了c2课程的学号放在一个集合,然后查找选修了c1课程的学号,并判断这个学号是否在选修了c2课程的学号集合里,如果是则找出。
转载请注明原文地址:https://jikaoti.com/ti/efP7FFFM
0

最新回复(0)