设有购买表(顾客号,商品号,购买时间)。现要查询顾客A与顾客B购买的相同商品。有下列查询语句: Ⅰ.SELECT商品号FROM购买表WHERE顾客号=′A′ AND商品号IN( SELECT商品号FROM购买表WHERE顾客号=′B′) Ⅱ

admin2021-05-07  30

问题 设有购买表(顾客号,商品号,购买时间)。现要查询顾客A与顾客B购买的相同商品。有下列查询语句:
Ⅰ.SELECT商品号FROM购买表WHERE顾客号=A
    AND商品号IN(
    SELECT商品号FROM购买表WHERE顾客号=B)
Ⅱ.SELECT。商品号FROM购买表WHERE顾客号=A
    EXCEPT
    SELECT商品号FROM购买表WHERE顾客号=B
Ⅲ.SELECT商品号FROM购买表WHERE顾客号=A
    INTERSECT
    SELECT商品号FROM购买表WHERE顾客号=B
Ⅳ.SELECT商品号FROM购买表WHERE顾客号=A
    UNION
    SELECT商品号FROM购买表WHERE顾客号=B
上述语句中,能够实现该查询要求的是(    )。

选项 A、仅Ⅰ和Ⅱ
B、仅Ⅰ和Ⅲ
C、仅Ⅰ和Ⅳ
D、仅Ⅲ

答案B

解析 SQL中的集合操作符IN、EXCEPT、INTERsECT和UNION的用法分别为:①IN,确定给定的值是否与子查询或列表中的值相匹配,选择与列表中的任意一个值匹配的行;②EXCEPT,指在第一个集合中存在,但是不存在于第二个集合中的数据;③INTERSECT,是指在两个集合中都存在的数据;④UNION,操作符用于合并两个或多个SELECT语句的结果集,对于UNION操作符,请注意,UNION内部的SELECT语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同。要返回A和B相同的商品,则选项Ⅰ中先查出B购买的商品号,并且使用IN操作符,查出A购买的商品号且该商品号同时也在B购买的商品号结果集中,即满足了A和B都购买的商品号,符合要求。选项Ⅱ中的EXCEPT操作符使得查询出的结果为A购买的商品减去B购买的商品,不符合要求。选项Ⅲ的INTERSECT操作符表示两个结果集都存在的商品号,即既属于A又属于B的商品号,符合要求。选项Ⅳ中的UNION操作符表示两个结果集的合并,即包括A购买的商品也包括B购买的商品,不符合要求。
转载请注明原文地址:https://kaotiyun.com/show/eYlZ777K
0

最新回复(0)