单选题 以下各题使用如下关系:
客户(客户号,名称,联系人,邮政编码,电话号码)
产品(产品号,名称,规格说明,单价)
订购单(订单号,客户号,订购日期)
订购单名细(订单号,序号,产品号,数量)

单选题 查询单价在600元以上的主机板和硬盘的正确命令是( )。
【正确答案】 B
【答案解析】[解析] 题中的查询有两个筛选条件,“单价>60”和“名称='主机板' OR 名称='硬盘'”,这两个条什要同时满足,应用AND进行与运算,又因为在条件中AND比OR运算符的优先级高,所以“名称='主机板' OR 名称='硬盘'”要加上括号。
单选题 查询客户名称中有“网络”二字的客户信息的正确命令是( )。
【正确答案】 D
【答案解析】[解析] SQL SELECT查询中有几个常用的特殊运算符,用来设置复杂的查询条件。如LIKE,是字符串匹配运算符,通配符“%”表示0个或多个字符,通配符“-”表示一个字符。
单选题 查询尚未最后确定订购单的有关信息的正确命令是( )。
【正确答案】 A
【答案解析】[解析] 在SQL SELECT查询语句中,用WHERE说明查询条件。在表中尚未确定的值用NULL值表示,而SQL中查询空值时要用IS NULL,不能用“=”。
单选题 查询订购单的数量和所有订购单平均金额的正确命令是( )。
【正确答案】 A
【答案解析】[解析] vfb中内联接查询的语法是:
SELECT…
FROM<数据库表1>TNNER JOIN<数据库表2>
ON<连接条件>
WHERE…
其中,INNER JOIN等价于JOIN,为普通的联接,在VisualFoxPro中称为内部联接:ON<连接条件>指定两个进行表联接的条件字段。
注意:联接类型在FROM子句中给出,并不是在WHERE子句中,联接条件在ON子句中给出。
COUNT()和AVG()都是SQL中用于计算的检索函数,其中COUNT用来计算记录个数,通常应该使用DISTINCT去除重复值,除非对关系中的元组个数进行计算。这个题目中要求订购单的数量,显然应该对订单号计数,但订购单明细表中的订单号是有重复的(因为一份订单上可能有多种产品),因此应该在COUNT()中使用DISTINCT。AVG函数是用来计算平均值的。产品金额=数量+单价。
单选题 假设客户表中有客户号(关键字)C1~C10共10条客户记录,订购单表有订单号(关键字)OR1~OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是( )。
【正确答案】 D
【答案解析】[解析] 本题中,客户表和订购单表是相互关联的表,其中客户号是公共字段,客户表是父表,订购单表是子表,题目中说明了订购单表参照客户表,即实施了参照完整性规则。当要向订购单表中插入一条记录时要注意两点:
·新记录的订单号不能与表中已有记录的订单号重复,因为订单号是订购单表的主关键字。而题中说明订购单表中已有订购单号OR1~OR8,就不能再插入订单号为OR5的记录。
·由于订购单表要参照客户表,所以在要插入记录的表中,如果联接字段值在父表中没有相匹配的值,则禁止插入。而题中说明父表客户表中并没有C11这个客户号,因此在子表订购单表中不能插入客户号为C11的记录。
SQL中,插入操作的命令格式如下:
INSERT INTO dbf_name [(fname1[, fname2,…])]VALUES(eExpressionl1[,eExpression2,…])
其中dbf_name指定要插入的表,当插入的不是究整记录时,可以用fname1,fname2,…,指定字段,VALUES给出具体的记录值。