问题 单项选择题

第(29)~(35题使用如下三个表:
有如下三个表:
职员.DBF:职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10)
客户.DBF:客户号C(4),客户名C(36),地址C(36),所在城市C(36)
订单.DBF:订单号C(4),客户号C(4),职员号C(3),签订日期D,金额N(6.2)

有以下SQL语句:
SELECT 订单号,签订日期,金额 FROM 订单,职员
WHERE 订单.职员号=职员.职员号 AND 姓名=“李二”
与如上语句功能相同的SQL语句是

A.SELECT 订单号,签订日期,金额FROM订单
WHERE EXISTS (SELECT*FROM 职员 WHERE 姓名=“李二”)

B.SELECT 订单号,签订日期,金额 FROM 订单 WHERE
EXISTS(SELECT*FROM 职员 WHERE 职员号=订单.职员号 AND 姓名=“李二”)

C.SELECT 订单号,签订日期,金额FROM 订单
WHERE IN (SELECT 职员号 FROM 职员 WHERE 姓名=“李二”)

D.SELECT 订单号,签订日期,金额FROM 订单 WHERE
IN (SELECT 职员号 FROM 职员 WHERE职员号=订单.职员号 AND 姓名=“李二”)

答案

参考答案:B

解析: 题干中的SQL语句的功能是:查询那些姓名为“李二”的职员的订单号,签订日期和金额的信息;四个选项中只有选项B中的查询条件与此等价。WHERE条件后跟EXISTS不是IN,选项C和选项D可排除,用(SELECT FROM...WHERE...)实现选择出“李二”的职员,选项A缺少“订单.职员号=职员.职员号”条件表达式。

选择题
多项选择题