单选题 19~25题所用到的数据如表1和表2所示。
表1 BRDA.dbf
病历号
姓名
性别
年龄
00000001
丁国维
22
00000002
吴春云
53
00000003
郭勤
63
00000004
戴燕
34
00000005
施添力
25
00000006
江素萍
50
00000007
樊达军
24
00000008
张小丽
21
表2 MXB.dbf
病历号
药品编号
单价/元
数量
日期
00000001
0001
15.00
4
08/08/1998
00000002
0001
15.00
6
08/06/1999
00000003
0001
15.00
3
07/23/1997
00000004
0001
15.00
4
08/08/1998
00000005
0001
15.00
5
08/06/1998
00000004
0001
15.00
1
07/23/1996
00000007
0001
15.00
8
08/06/2000
00000008
0001
15.00
2
07/23/2002
00000001
0002
30.00
4
08/08/1998
00000002
0003
28.00
6
08/06/1999
00000003
0002
30.00
3
07/23/1997
00000001
0003
28.00
4
08/08/1998
00000005
0002
30.00
5
08/06/1998
00000006
0003
28.00
1
07/23/1996
00000004
0002
30.00
8
08/06/2000
00000008
0003
28.00
2
07/23/2002
00000004
0003
28.00
2
07/23/2002


单选题 语句如下:
SELECT BRDA.姓名,COUNT(*);
  FROM BRDA INNER JOIN MXB;
  ON BRDA.病历号=MXB.病历号;
  GROUP BY BRDA.病历号;
  ORDER BY 2 DESC
该语句执行后,结果中的每一条记录的值为______。
【正确答案】 A
【答案解析】[分析] 本题的SELECT语句的作用是根据病历号相等,在BRDA和MXB两个表之间建立内部连接,然后根据病历号进行分组,求出每个病历号有多少条记录(即开药记录数),并按照开药记录数降序排列。
单选题 要列出所有病人病历号、姓名和所用的药品总价,下列的语句正确的是______。
【正确答案】 C
【答案解析】[分析] 由于需要两个表中的信息,根据语义可知两个表之间应根据病历号相等建立内部连接,内部连接用ON表示连接条件而不是用WHERE表示连接条件。连接后应根据病历号进行分组,求出每个病历的药品总价,求药品总价可用SUM()函数对表达式“MXB.数量 * MXB.单价”进行求和。注意GROUP BY子句和ORDER BY子句的区别。
单选题 要给BRDA表的性别字段设置一个字段级有效性规则,规则为该字段只能输入“男”或“女”,如果在输入时违反了该规则,将给出提示信息“性别必须是男或女。”正确的语句是______。
【正确答案】 C
【答案解析】[分析] 在表存在时,要定义、修改和删除有效性规则和设置默认值的语法格式为
ALTER TABLE TableName1 ALTER [COLUMN] FieldName2 [NULL|NOT NULL]
[SET DEFAULT eExpression2][SET CHECK 1Expression2[ERROR cMessageText2]]
[DROP DEFAULT][DROP CHECK]
注意:使用的是SET CHECK子句而不是ADD CHECK。性别是一个字符型,"男"和"女"应用双引号括起来。
单选题 把MXB中药品编号为“0001”的药品的单价提高15%,其他药品的单价提高10%,以下正确的语句为______。
【正确答案】 C
【答案解析】[分析] REPLACE语句使用FOR条件来选择记录,UPDATE命令使用WHERE条件。UPDATE命令的一般格式为
UPDATE 表名 SET 字段名=表达式;故只有C是正确的。
单选题 要给BRDA表增加一个婚否字段(逻辑型),下面正确的是______。
【正确答案】 C
【答案解析】[分析] 给表增加一个字段的SQL命令格式为
ALTER TABLE 表名 ADD COLUMN 字段名 字段类型[(字段宽度[,精度])]
注意:字段名不能加双引号,故C是正确的。
【正确答案】 B
【答案解析】[分析] 删除表中的记录可使用DELETE语句和SQL-DELETE命令,DELETE语句不能有FROM子句,SQL-DELETE命令中不能有ALL关键字,故正确答案只可能是A和B。选项A是DELETE语句,但DELETE语句删除表中的记录时,表必须是打开的。当表不是打开的时候,只能通过SQL-DELETE语句来删除它。
单选题 根据MXB创建一个名为YP的视图,该视图包含每种药品的药品号和销售总价,下列正确的语句是______。
【正确答案】 B
【答案解析】[分析] 创建视图的命令格式为
CREATE VIEW 视图名 AS SELECT 命令
要求出每种药品的销售总价,应根据药品编号来进行分组,对表达式“数量*单价”进行求和。注意分组使用的是GROUP BY子句。