单选题 使用如下数据表:
客户(客户号,名称,联系人,地址,电话号码)
产品(产品号,名称,规模说明,单价)
订购单(订单号,客户号,产品号,数量,订购日期)

单选题 查询单价在100元以上的鼠标和键盘,正确命令是
A. SELECT * FROM 产品 WHERE 单价 >100 AND(名称='鼠标' AND 名称='键盘')
B. SELECT * FROM 产品 WHERE 单价 >100 AND(名称='鼠标' OR 名称='键盘')
C. SELECT * FROM 产品 FOR 单价 >100 AND(名称='鼠标' AND 名称='键盘')
D. SELECT * FROM 产品 FOR 单价 >100 AND(名称='鼠标' OR 名称='键盘')
【正确答案】 B
【答案解析】[解析] SQL SELECT命令的语法格式中WHERE说明查询条件,即选择元组的条件。逻辑元素AND表示“并且”的关系,OR表示“或者”的关系,此题应该用“或者”的关系。
单选题 查询客户名称中有“电脑”二字的客户信息,正确的SQL命令是
A. SELECT * FROM 客户 WHERE 名称 LIKE "%电脑%"
B. SELECT * FROM 客户 FOR 名称 LIKE "%电脑%"
C. SELECT * FROM 客户 WHERE 名称="%电脑%"
D. SELECT * FROM 客户 FOR 名称="%电脑%/
【正确答案】 A
【答案解析】[解析] SQL SELECT查询中的条件是WHERE,又由于查询条件是查询客户中含有“电脑”的客户,则用到匹配函数LIKE。LIKE子句的使用格式为:字段LIKE字符串表达式。其中,字符串表达式中可以使用通配符号,%表示匹配包含零个或多个字符的任意字符串,一表示任意一个字符。
单选题 查询尚未最后确定订购单的有关信息的正确命令是
A. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
WHERE 客户,客户号=订购单.客户号 AND 订购日期 IS NULL
B. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
WHERE 客户.客户号=订购单,客户号 AND 订购日期=NULL
C. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
FOR 客户.客户号=订购单,客户号 AND 订购日期 IS NULL
D. SELECT 名称,联系人,电话号码,订单号 FROM 客户,订购单
FOR 客户,客户号=订购单.客户号 AND 订购日期=NULL
【正确答案】 A
【答案解析】[解析] SQL SELECT命令的语法格式中WHERE说明查询条件,即选择元组的条件。查询语法中没有关键词FOR;查询空值未定事情时要使用IS NULL,而“=NULL”是无效的,因为空值不是一个确定的值。所以正确答案为A。
单选题 查询订购单的数量和所有订购单平均金额,正确命令是
A. SELECT COUNT(DISTINCT 订单号),AVG (数量 * 单价)
FROM 产品 JOIN 订购单 ON 产品,产品号=订购单.产品号
B. SELECT COUNT (订单号),AVG (数量 * 单价)
FROM 产品 JOIN 订购单 ON 产品,产品号=订购单,产品号
C. SELECT COUNT(DISTINCT 订单号),AVG (数量 * 单价)
FROM 产品,订购单 ON 产品.产品号=订购单.产品号
D. SELECT COUNT (订单号),AVG (数量 * 单价)
FROM 产品,订购单 ON 产品.产品号=订购单,产品号
【正确答案】 A
【答案解析】[解析] 这是一个连接查询,要用到JOIN ON语句,同时要用汇总函数和平均数函数。SQL不仅具有一般的检索能力,而且还有计算方式的检索。用于计算检索的函数有:COUNT(计数)、SUM(求和)、AVG(计算平均值)、MAX(求最大值)、MIN(求最小值)。查询订购单的数量,只要统计“订购单”表中的“订单号”的个数,所以计数应使用COUNT函数,使用DISTINCT关键字去掉重复值,故选项B、D均不正确。计算所有订购单的平均金额,可以通过AVG(单价 * 数量),“单价”字段在“产品”表中,“数量”字段在“订购单”表中,所以必须指明两个表的连接字段,两个表通过“产品号”公共字段进行连接,在指定连接字段时可以用WHERE指定连接条件也可以用超连接关键字JOIN表示普通连接,即只有满足连接条件的记录才出现在查询结果中,JOIN后面用ON子句指定连接条件,所以选项C不正确,正确的答案是选项A)。
单选题 假设客户表中有客户号(关键字)C1~C8共8条客户记录,订购单表有订单号(关键字)OR1~OR6共6条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是
A. INSERT INTO 订购单 VALUES('OR5', 'C5', '102', 3, {^2008/10/10})
B. INSERT INTO 订购单 VALUES('OR5', 'C9', '102', 3, {^2008/10/10})
C. INSERT INTO 订购单 VALUES('OR7', 'C9', '102', 3, {^2008/10/10})
D. INSERT INTO 订购单 VALUES('OR7', 'C5', '102', 3, {^2008/10/10})
【正确答案】 D
【答案解析】[解析] 在Visual FoxPro的表中,不允许插入重复的记录。由题意可知,“订购单”表中包括关键字为ORI~OR6的6条记录,所以不能再插入“订单号”为OR5的记录;“客户”表中包括关键字为C1~C8的8条记录,即没有客户号为C9的客户。故本题答案为选项D)。