使用下列数据表。“外汇名”表:外币代码 外币名称 现钞买入价 现钞卖出价 基准价13 欧元 958.6400 985.2300 996.540028 英镑 1220.9700 1330.2200 1287.456537 法郎 592.7650 618.1305 612.591026 加元 516.4110 531.4280 519.869015 美元 811.5410 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=表达式1[,列名2=表达式 2…] [WHERE<条件表达式>] 一般使用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段;如果不使用WHERE子句,则更新全部记录。
单选题 删除“持有数”表中所有外币名称为“瑞士法郎”的记录,下列语句中正确的是(  )。
【正确答案】 C
【答案解析】解析:利用SQL数据操作功能,可以逻辑删除数据表中的记录。其命令格式为: DELETE FROM表名 [WHERE 过滤条件 1[AND|OR 过滤条件 2…\]\] 其中,该命令语句只能对单表进行更新,选项A)和B)中的FROM短语指定了两个数据表,属于语法错误;选项D)中使用IN短语时,子查询要用括号括起来。