商品ID,并将不在此商品所在类别的其他类别的ID列出来。分析:此查询需要进行嵌套查询,子查询过程需要使用到SUM()函数和GROUPBY求出同种商品的所有被订数量,使用比较运算符得到数量总和小于100的商品ID,再使用比较运算符“不等于”得到非此商品所在类的类别ID。【实验2.16】EXISTS(1)查询表中是否存在用户ID为100的用户,如果存在,列出此用户的信息。分析:EXISTS关键字后面的参数是一个任意的子查询,系统对于查询进行运算以判断它是否返回行,如果至少返回一行,那以EXISTS的结果为TRUE,此时外层查询语句将进行查询。此查询需要对用户ID进行EXIST操作。(2)查询表中是否存在类别ID为100的商品类别,如果存在,列出此类别中商品价格小于5的商品ID。分析:与上一个实验相似,此实验在外查询过程添加了比较运算符。【实验2.17】ANY查询所有商品表中价格比订单表中商品ID对应的价格大的商品ID。分析:ANY关键字在一个比较操作符的后面,表示若与子查询返回的任何值比较为TRUE,则返回TRUE。此处使用ANY来引出内查询。【实验2.18】ALL查询所有商品表中价格比订单表中所有商品ID对应的价格大的商品ID。分析:使用ALL时需要同时满足所有内层查询的条件。ALL关键字在一个比较操作符的后面,表示与子查询返回的所有值比较为TRUE,则返回TRUE。此处使用ALL来引出内查询。【实验2.19】集合查询(1)查询所有价格小于5的商品,查询类别ID为1和2的所有商品,使用UNION连接查询结果。分析:由前所述,UNION将多个SELECT语句的结果组合成一个结果集合,第1条SELECT语句查询价格小于5的商品,第2条SELECT语句查询类别ID为1和2的商品,使用UNION将两条SELECT语句分隔开,执行完毕之后把输出结果组合为单个的结果集,并删除重复的记录。