答案:
参考答案:
解析:CREATE VIEW客户产品AS( SELECT 客户号,产品号 FROM 订单,订单明细 WHERE 订单明细.订单号=订单.订单号); (2) (j)NOT EXISTS (k)客户号=’01’ AND NOT EXISTS (1)客户产品1.客户号=客户产品3.客户号AND客户产品2.产品号 =客户产品3.产品号
[分析]: 本题考核的知识点是SQL中的视图创建和SQL查询命令。 SQL语言用CREATE VIEW命令建立视图,其格式为: CREATE VIEW <视图名>[(<列名>[,<列名>]...)] AS <子查询> [WITHCHECKOPTION]; 根据题目描述,一个订单涉及多个产品,订单中的每个产品对应一项订单明细。一个订单对应一个客户,一个客户可以有多个订单。要建立客户号和产品号的关系,必须通过订单和订单明细。一个客户号对应多个订单,一个订单对应多项订单明细,一项订单明细对应一个产品。所以,视图如下: CREATE VIEW客户产品AS( SELECT 客户号,产品号 FROM 订单,订单明细 WHERE 订单明细.订单号=订单.订单号); 要查找至少购买了01号客户购买的所有产品的客户号,可借助上述的客户产品视图。通过该视图,可以知道每个客户购买过的产品号。根据01号客户购买的所有产品号,看看是否存在这样的客户号,其对应的产品号集合包含这些产品号(01号客户购买的所有产品号)。查找可以进一步转换成,查询客户X,使得不存在这样的产品Y,01号客户购买了Y,而客户X没有购买。