单选题
(31)到(35)题使用如下数据表。
“外汇名”表:
外币代码 外币名称 现钞买入价 现钞卖出价 基准价
13 欧元 958.6400 985.2300 996.5400
28 英镑 1220.9700 1330.2200 1287.4565
37 瑞士法郎 592.7650 618.1305 612.5910
26 加元 516.4110 531.4280 519.8690
15 美元 811.05410 817.8900 815.6650
“持有数”表:
姓名 外币代码 持有数量
李巡芬 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
单选题
执行下列SQL语句后,第一条记录的内容是( )。
SELECT 姓名,外币名称,持有数量 FROM 外汇名,持有数;
WHERE 外汇名.外币代码=持有数外币代码;
AND持有数量>-10000;
ORDER BY 持有数量 DESC,姓名
【正确答案】
D
【答案解析】[解析] 本题SQL语句执行的功能是检索外汇持有数量在10000(含)以上的持有人姓名、外汇名称和持有数量,检索的结果按“持有数量”降序排序,当“持有数量”相同时则按“姓名”升序排序。其中FROM短语中指定的是要查询的表,WHERE短语中指定两表的连接条件和筛选记录的条件,ORDER BY短语中指定排序字段及排序方式。注意:两个排序字段之间用逗号隔开。
单选题
查询持有外币种类在4种以上人员的姓名,及持有的种类数量,并按种类数量升序排列,数量相同时,则按姓名降序排列,下列语句中正确的是( )。
【正确答案】
A
【答案解析】[解析] 本题中首先通过GROUP BY短语按“姓名”字段对“持有数”表中的记录进行分组,然后利用COUNT()函数分组统计每个人持有的外币种类,再通过HAVING子句限定外币种类至少在4种以上的记录;利用ORDER BY短语可以对查询结果进行排序,有升序(ASC)和降序(DESC)两种,默认的为升序排序方式,如果排序字段有多个,则每个字段之间用逗号隔开。
单选题
计算出“陆凭凭”所持有的全部外币相当于人民币的价值数量,下列语句中正确的是 ( )。(某种外币相当于人民币数量的计算公式:人民币价值数量=该种外币的“现钞买入价” * 该种外币“持有数量”)
【正确答案】
A
【答案解析】[解析] 本题中查询的“现钞买入价”是来自“外汇名”表的字段,“持有数量”来自“持有数”表,进行计算查询时需要采用连接查询的方式刘•两表进行查询,两表的连接条件在WHERE短语中指定,另外对记录进行筛选的条件通过AND短语与表的连接条件一起放在WHERE短语之后。
单选题
将“外汇名”表美元和欧元的基准价下调1%,下列语句中正确的是( )。
【正确答案】
B
【答案解析】[解析] SQL的数据更新命令格式:
UPDATE<表名>SET 列名1=表达式[,列名2=表达式2…]
[WHERE<条件表达式>]
一般使用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段:如果不使用WHERE子句,则更新全部记录。
单选题
删除“持有数”表中所有外币名称为“瑞士法郎”的记录,下列语句中正确的是( )。
【正确答案】
C
【答案解析】[解析] 利用SQL数据操作功能,可以逻辑删除数据表中的记录。其命令格式为:
DELETE FROM 表名
[WHERE 过滤条件1[AND|OR 过滤条件2…]]
其中,该命令语句只能对单表进行更新,选项A)和B)中的 FROM 短语指定了两个数据表,属于语法错误;选项D)中使用IN短语时,子查询要用括号括起来。