下列小题使用如下3个数据库表: 职员.dbfi职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10) 客户.dbfi客户号C(4),客户名C(36),地址C(36),所在城市C(36) 订单.dbf;订单号C(4),客户名C(4),职员号

admin2017-06-26  22

问题 下列小题使用如下3个数据库表:
职员.dbfi职员号C(3),姓名C(6),性别C(2),组号N(1),职务C(10)
客户.dbfi客户号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、SEI+ECT订单号,签订日期,金额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

解析 题目中给出的SELECT语句是查找出姓名为“李二”的职员签订的订单号、签订日期和金额。选项B)中,使用EXISTS谓词来检查子查询中是否有结果返回,它的查询过程是:外查询中,在订单表中从第一条记录开始取出当前职员号,再在内查询中,针对该职员号,在职员表中逐条记录判断是否存在符合WHERE条件的记录,如果存在,则在外查询的订单表中找到该职员号对应的订单号、签订日期和金额;然后依次类推,在订单表中从第二条记录中取出当前职员号,再在内查询中进行判断,直到将订单表中的所有记录都处理完毕。
转载请注明原文地址:https://kaotiyun.com/show/hTBp777K
0

最新回复(0)