设有以下3个表:学生表STUD(学号 姓名 性别 年龄 专业)课程表KC(课程号 课程名 选修课号 学分)学
课程,学号,姓名
已帮助 人
设有以下3个表: 学生表STUD(学号,姓名,性别,年龄,专业) 课程表KC(课程号,课程名,选修课号,学分) 学生选课表SC(学号,课程号,成绩) 查询选修了课程名为“数据结构”的学生的姓名的SELECT语句是______。
A.SELECT 姓名 FROM STUD; WHERE学号SELECT学号FROM SC WHERE 课程号IN; (SELECT课程号FROM KC WHERE 课程名=“数据结构”)
B.SELECT姓名FROM STUD; WHERE学号IN(SELECT学号FROM SC WHERE 课程号UNION; (SELECT 课程号 FROM KC WHERE 课程名=“数据结构”))
C.SELECT 姓名 FROM STUD; WHERESELECT课程号FROMKCWHERE课程名=“数据结构”
D.SELECT姓名FROM STUD; WHERE 学号 IN(SELECT 学号 FROM SC WHERE 课程号 IN; (SELECT课程号FROM KC WHERE 课程名=“数据结构”))
请帮忙给出正确答案和分析,谢谢!
-
正确答案:D
解析:要实现本题的查询要求,需使用嵌套查询。嵌套查询又称为子查询,它可以把一个SELECT-FROM-WHERE查询块嵌入在另一个查询块中。嵌套查询是由内向外进行的。在嵌套查询中,常用谓词IN引导子查询。选项A、B、C的语句不符合嵌套查询的语法结构,只有选项D正确。
