作业帮 > 综合 > 作业

数据库VFP计算机二级的一道题目

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/25 07:46:46
数据库VFP计算机二级的一道题目
查询选修C2课程号的学生姓名,下列SQL语句中错误的是(  )。
A) SELECT姓名FROM S WHERE EXISTS (SELECT * FROM SC WHERE 学号 = S.学号 AND课程号 = ′C2′ )
B) SELECT姓名FROM S WHERE学号IN (SELECT学号FROM SC WHERE课程号 = ′C2′)
C) SELECT姓名FROM S JOIN SC ON S.学号 = SC.学号 WHERE 课程号 = ′C2′
D) SELECT姓名FROM S WHERE学号 = (SELECT 学号 FROM SC WHERE 课程号 = ′C2′)
参考答案:D
【解析】本题A)选项为使用量词和谓语的查询,有两种格式:格式1:<表达式><比较运算符>[ANY|ALL|SOME](子查询)。格式2:[NOT]EXISTS(子查询)。C)选项为超链接查询,B)和D)选项为简单查询,SELECT查询的基本格式为:SELECT <字段名表>FROM <表名表>WHERE <条件>GROUP BY <字段>HAVING <条件>ORDERBY<字段>INTO DBF|TABLE |。D)选项格式错误。
解析看不懂
在D中,Where子句里是一个用一个字段等于一个集合,这在SQL中是不可以的.
类似的错误可以看成这样的写法:
Select * From a Where id=(1,2,3)
无论集合中有多少个元素,这都是不可以的,对应的正确方式则是如B例中那样, "元素 In 集合",如:
Select * From A Where ID In (1,2,3)
就是正确的了.