假设客户表中有客户号(关键字)C1~C10共10条客户记录,订购单表有订单号(关键字)OR1~OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是

admin2016-12-07  31

问题 假设客户表中有客户号(关键字)C1~C10共10条客户记录,订购单表有订单号(关键字)OR1~OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是

选项 A、INSERT INTO 订购单 VALUES(’OR5’,’C5’,{^2008/10/10})
B、INSERT INTO 订购单 VALUES(’OR5’,’C11’,{^2008/10/10})
C、INSERT INTO 订购单 VALUES(’OR9’,’C11’,{^2008/10/10})
D、INSERT INTO 订购单 VALUES(’OR9’,’C5’,{^2008/10/10})

答案D

解析 客户表和订购单表是相互关联的表,其中客户号是公共字段,客户表是父表,订购单表是子表,题目中说明了订购单表参照客户表,即实施了参照完整性规则。当要向订购单表中插入一条记录时要注意两点:①新记录的订单号不能与表中已有记录的订单号重复,因为订单号是订购单表的主关键字。而题中说明订购单表中已有订购单号OR1-OR8,就不能再插入订单号为OR5的记录,故可排除A、B选项。②由于订购单表要参照客户表,所以如果在要插入的记录中,联接字段值在父表中没有相匹配的值,则禁止插入。而题中说明父表客户表中并没有C11这个客户号,因此在子表订购单表中不能插入客户号为C11的记录,排除选项C。
SQL中,插入操作的命令格式:
insert into dbf_name[(fname1[,fname2,…])]
values(eExpression1[,eExpression2,…])
其中dbf_name指定要插入的表,当插入的不是完整记录时,可以用fname1,fname2,….指定字段,values给出具体的记录值。
转载请注明原文地址:https://kaotiyun.com/show/IuIp777K
0

随机试题
最新回复(0)