单选题 (15)~(27)题使用的数据如下:
当前盘当前目录下有数据库db_ stock,其中有数据库表stock.. dbf,该数据库表的内容是:
股票代码 股票名称 单价 交易所
600600 青岛啤酒 7.48 上海
600601 方正科技 15.20 上海
600602 广电电子 10.40 上海
600603 兴业房产 12.76 上海
600604 二纺机 9.96 上海
600605 轻工机械 14.59 上海
000001 深发展 7.48 深圳
000002 深万科 12.50 深圳

单选题 执行如下SQL语句后( )。
SELECT* FROM stock INTO DBF stock ORDER BY 单价
【正确答案】 A
【答案解析】[解析] 使用SELECT语句的INTO DBF|TABLE TableName短语,系统会将查询结果存放到永久表中,但此题目中,选择的源表与生成的目标表名称相同,执行后会出现“不能创建文件”的错误提示对话框。
单选题 执行下列程序段以后,内存变量a的内容是( )。
CLOSE DATABASE
a=0
USE stock
GO TOP
DO WHILE. NOT. EOF()
IF单价>10
a=a+1
ENDIF
SKIP
ENDDO
【正确答案】 C
【答案解析】[解析] 该程序的功能是统计数据表db stock 中“单价”字段大于10的记录个数,并且将这个数值存放在变量a中。该程序的一个难点在于程序的第7行:a=a+1,这条语句相当于将变量a自增,实现计数器的功能,可以看出,该程序是从数据表db_ stock的第一条记录开始逐条对记录进行判断,如果当前记录的“单价”大于10,就使计数器加1。_然后将记录指针移向下一条记录。通过查看数据表中的记录发现有5条记录(第2、3,4,6、8)满足条件,因此变量a的值为5。
单选题 有如下SQL SELECT语句:
SELECT* FROM stock WHERE 单价 BETWEEN 12.76 AND 15.20
与该语句等价的是( )。
【正确答案】 A
【答案解析】[解析] 语句“SELECT* FROM stock WHERE 单价 BETWEEN 12.76 AND 15.20”的含义是:选择“单价”在12.76和12.50之间的那些记录。请注意,用BETWEEN作取值范围限定时,是包括限定条件的两个端点值的,因此本题所设定的限定条件相当于“单价”大于等于12.76并且小于等于12.50的记录。选项A是另外一种实现条件查询的书写方法,其含义与题干中给出的SQL语句完全一样。
单选题 如果在建立数据库表stock. dbf时,将单价字段的有效性规则设为“单价>0”,通过该设置,能保证数据的( )。
【正确答案】 B
【答案解析】[解析] 域完整性是指数据库数据取值的正确性。它包括数据类型、精度、取值范围以及是否允许空值等,题目中是在建立数据表的时候,就将单价字段的有效性规则设为“单价>0”,这就是对数据取值的取值范围进行规定,因此是域完整性的设定。
单选题 在当前盘当前目录下删除表stock的命令是( )。
【正确答案】 C
【答案解析】[解析] 在Visual FoxPro中删除表的命令的语法格式是:DROP TABLE表名。
单选题 有如下SQL语句:
SELECT max (单价) INTO ARRAY a FROM stock
执行该语句后( )。
【正确答案】 A
【答案解析】[解析] 本题中SQL语句的功能是:在stock表中查询“单价”最高的记录,然后将该记录的单价字段存放至数组a中,请注意,数组a中仅仅存放该记录的单价,而数据表中,单价最高为15.20。
单选题 有如下SQL语句:
SELECT 股票代码,avg(单价)as均价FROM stock;
GROUP BY交易所INTO DBF temp
执行该语句后,temp表中第二条记录的“均价”字段的内容是( )。
【正确答案】 B
【答案解析】[解析] 本题中SQL语句的功能是;在stock表中按“交易所”字段分组计算各个交易所的均价,然后将结果保存在永久表temp中。其计算过程是:首先将所有的数据记录按交易所进行分组,题中的交易所只有上海和深圳,因此计算后将会得到两条记录:第1条记录是计算所有在上海交易所交易的股票的均价,第2条记录则是计算深圳交易所的交易的股票均价。这两条记录会存放在永久表temp中,按题目要求知道,第二条记录是深圳交易所的均价,通过stock表计算可以得出其均价是9.99。
单选题 将stock表的股票名称字段的宽度由8改为10,应使用SQL语句( )。
【正确答案】 C
【答案解析】[解析] 修改字段属性的SQL命令语法格式为:ALTER TABLE TableName1 ALTER FieldName2 FieldType[nFieldWidth],从4个候选项中可以看出,选项A和B都缺少关键字ALTER,选项D缺少关键字TABLE。
单选题 有如下SQL语句:
CREATE VIEW stock view AS SELECT* FROM stock WHERE 交易所=“深圳”
执行该语句后产生的视图包含的记录个数是( )。
【正确答案】 B
【答案解析】[解析] 题干中SQL语句的功能是从stock表中创建一个名为stock_ view的视图,该视图由“交易所”字段为“深圳”的记录组成。通过查看数据表文件可以看出,满足条件的记录只有两条(原数据表中7、8两条记录),因此组成该视图的记录个数为2。
单选题 有如下SQL语句:
CREATE VIEW view_ stock AS SELECT 股票名称 AS 名称,单价 FROM stock
执行该语句后产生的视图含有的字段名是( )。
【正确答案】 B
【答案解析】[解析] 在使用SQL语句创建视图时,AS子句后面包含哪些字段名,这些字段名就是组成所创建视图中的字段。由题干可以发现,名称、单价为创建的视图的字段。
单选题 下面有关对视图的描述正确的是( )。
【正确答案】 D
【答案解析】[解析] C选项可以排除,视图并不是对表的复制。选项A也是错误的,对视图的修改可以使用命令MODIFY VIEW而不是MODIFY STRUCTURE来进行。选项B也错,因为视图是可以被删除的。
单选题 执行如下SQL 语句后:
SELECT DISTINCT 单价 FROM stock;
WHERE 单价=(SELECT min(单价)FROM stock)INTO DBF stock_ x
表stock_ x中的记录个数是( )。
【正确答案】 A
【答案解析】[解析] 该SQL语句具体的执行过程是:首先从数据表db_ stock中找出所有记录中单价字段值最低的记录,并且记住该记录的单价字段值。然后再查找数据表db_ stock,从中查出单价字段等于该最低单价的记录,同时用DISTINCT进行限定,即选出的记录是不允许重复的,最后将结果存放到表 stock_ x中,因此可以看小,stock_ x表中的记录个数为1。
单选题 求每个交易所的平均单价的SQL语句是( )。
【正确答案】 D
【答案解析】[解析] 本题需要求出每个交易所的平均单价,需要对每个交易所的数据记录进行平均操作,则要使用GROUP BY子句对记录进行分组,并且分组的字段应为“交易所”,则只有答案D满足条件。