单选题
“外汇名”表:
外币代码 外币名称
现钞买入价 现钞卖出价 基准价
13 欧元 958.6400
985.2300 996.540
28 英镑
1220.9700 1330.2200 1287.456
37
法郎 592.7650 618.1305
612.591
26 加元 516.4110
531.4280 519.869
15
美元 811.5410 817.8900 815.665
“持有数”表:
姓名 外币代码 持有数量
李巡芬 37 30000.00
张武奇
13 1000.00
陆凭凭 15
3000.00
陆凭凭 37 4000.00
张武奇 15 2200.00
林诗诗
26 2000.20
李巡芬 26
30000.00
张武奇 28
3000.00
陆凭凭 26 3000.00
陆凭凭 13 4000.00
张武奇 26 18000.00
单选题
查询持有外币种类在4种以上人员的姓名,及持有的种类数量,并按种类数量升序排列,数量相同时,则按姓名降序排列,下列语句正确的是{{U}}
{{/U}}。
- A. SELECT 姓名,COUNT(*)AS外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER BY
外币种类,姓名 DESC
- B. SELECT 姓名,COUNT(*)AS 外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER
BY COUNT(*),姓名 DESC
- C. SELECT 姓名,COUNT(*)AS 外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER
BY 外币种类 AND 姓名 DESC
- D. SELECT 姓名,COUNT(*)AS 外币种类 FROM 持有数;GROUP BY 姓名 HAVING COUNT(*)>=4;ORDER
BY 外币种类+姓名 DESC
【正确答案】
A
【答案解析】[解析] 本题中首先通过GROUP BY短语按“姓名”字段对“持有数”表中的记录进行分组,然后利用COUNT()分组统计每个人持有的外币种类,再通过HAVING子句限定外币种类至少在4种以上的记录;利用ORDERBY短语可以对查询结果进行排序,有升序(ASC)和降序(DESC)两种,默认的为升序排序方式,如果排序字段有多个,则每个字段之间用逗号隔开。
单选题
计算出“陆凭凭”所持有的全部外币相当于人民币的价值数量,下列语句正确的是{{U}} {{/U}}。
(某种外币相当于人民币数量的计算公式:人民币价值数量=该种外币的“现钞买入价”*该种外币“持有数量”)
- A. SELECT SUM(现钞买入价*持有数量)AS 人民币价值:FROM 持有数,外汇名;WHERE 外汇名,外币代码=持有数.外币代码;AND
姓名="陆凭凭"
- B. SELECT SUM(现钞买入价*持有数量)AS 人民币价值:FROM 持有数,外汇名;WHERE 外汇名.外币代码=持有数.外币代码;FOR
姓名="陆凭凭"
- C. SELECT COUNT(现钞买入价*持有数量)AS 人民币价值:FROM 持有数,外汇名;WHERE 外汇名.外币代码=持有数.外币代码;AND
姓名="陆凭凭"
- D. SELECT COLINT(现钞买入价*持有数量)AS 人民币价值:FROM 持有数,外汇名;WHERE
外汇名.外币代码=持有数.外币代码;FOR 姓名="陆凭凭"
【正确答案】
A
【答案解析】[解析] 本题中查询的“现钞买入价”是来自“外汇名”表的字段,“持有数量”来自“持有数”表,进行计算查询时需要采用连接查询的方式对两表进行查询,两表的连接条件在WHERE短语中指定,另外对记录进行筛选的条件通过AND短语与表的连接条件一起放在WHERE短语之后。
单选题
将“外汇名”表美元和英镑的基准价下调1%,下列SQL语句正确的是{{U}} {{/U}}。
- A. UPDATE 外汇名 FOR 基准价=基准价*0.99;WHERE 外币名称="美元"OR 外币名称="欧元"
- B. UPDATE 外汇名 SET 基准价=基准价*0.99;WHERE 外币名称="美元"OR 外币名称="欧元"
- C. UPDATE 外汇名 SET 基准价=基准价*0.99;WHERE 外币名称="美元"AND 外币名称="欧元"
- D. LIPDATE 外汇名 FOR 基准价=基准价*0.99;WHERE 外币名称="美元"AND 外币名称="欧元"
【正确答案】
B
【答案解析】[解析] SOL的数据更新命令格式为:
UPDATE<表名>SET列名1=表达式1[,列名2=表达式2…]
[WHERE<条件表达式>]
一般使用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录。
单选题
删除“持有数”表中所有外币名称为“法郎”的记录,下列SQL语句正确的是{{U}} {{/U}}。
- A. DELETE FROM持有数;WHERE 持有数.外币代码=外汇名.外币代码;AND 外币名称="法郎"
- B. DELETE FROM 持有数,外汇名;WHERE 持有数.外币代码=外汇名.外币代码;AND 外币名称="法郎"
- C. DELETE FROM 持有数 WHERE 外币代码 IN;(SELECT 外币代码 FROM 外汇名 WHERE外币名称="法郎")
- D. DELETE FROM 持有数 WHERE 外币代码 IN;SELECT 外币代码 FROM 外汇名 WHERE
外币名称="法郎"
【正确答案】
C
【答案解析】[解析] 利用SQL数据操作功能,可以逻辑删除数据表中的记录。其命令格式为:
DELETE FROM<表名>
[WHERE过滤条件1[AND|OR过滤条件2…1]
其中,该命令语句只能对单表进行更新,选项A)和B)中的FROM短语指定了两个数据表,属于语法错误,选项D)中使用IN短语时,子查询要用括号括起来。
单选题
在SQL中,删除视图用________。
- A. DROP SCHEMA命令
- B. CREATE TABLE命令
- C. DROP VIEW命令
- D. DROP INDEX命令
【正确答案】
C
【答案解析】[解析]
[评析] 视图由于是从表中派生出来的,所以不存在修改结构的问题,但是视图可以删除。删除视图的命令格式是:
DROP VIEW<视图名>
单选题
在当前打开的表中,显示“地址”以“北京市”开头的所有仓库,正确的命令是
- A.list for地址="北京*"
- B.list for地址="北京市"
- C.list for地址="北京%"
- D.list where地址="北京市"
【正确答案】
B
【答案解析】List命令中for条件用于在指定的范围内进行选择操作,仅显示满足条件的记录。
单选题
在Visual FoxPro中SQL支持集合的并运算,其运算符是{{U}} {{/U}}。
- A. UNION
- B. AND
- C. JOIN
- D. PLUS
【正确答案】
A
【答案解析】[解析] SQL支持集合的并(UNION)运算,可以将具有相同查询字段个数且对应字段值域相同的SQL查询语句用UNION短语连接起来,合并成一个查询结果输出。因此选A)。
单选题
连编后可以脱离Visual FoxPro独立运行的程序是______。
- A. APP程序
- B. EXE程序
- C. FXP程序
- D. PRG程序
【正确答案】
B
【答案解析】[解析] 连编应用程序
[评析] 连编后可生成APP或EXE文件,APP文件需要在Visual FoxPro中运行,而EXE文件可以在Windows中运行。
单选题
在Visual FoxPro中,自由表不能建立的索引是______。
- A.主索引
- B.候选索引
- C.唯一索引
- D.普通索引
【正确答案】
A
【答案解析】[解析] 根据索引功能的不同,可以将索引分为主索引、候选索引、唯一索引和普通索引四种。其中,主索引是在指定字段或表达式中不允许出现重复值的索引,在数据库表中才能建立主索引,即在一个自由表中不能建立主索引。