使用下列数据表。“作者”表:作者编号 姓名 所在城市1101 张晓云 北京1102 李 丽 北京1103 袁熙林 上海1104 赵三立 广州1105 方德胜 上海1106 刘 清 北京“图书”表:书编号 书名 出版单位 价格 作者编号 页数1101 计算机基础知识 经济科学出版社 32.80 1101 2522202 会计基础知识 经济科学出版社 17.80 1105 2151102 VB 9.0初级入门 人民邮电出版社 22.50 1102 2641103 Word 2003基础知识 大地出版社 19.80 1101 2981105 VFP 6.0程序设计基础 大地出版社 38.50 1103 3102201 中级会计财务知识 经济科学出版社 28.80 1106 2451110 计算机网络基础 高等教育出版社 26.50 1101 2581111 计算机组成原理 北京大学出版社 31.20 1103 981112 数据库设计原理 高等教育出版社 35.50 1101 3301113 C语言程序设计 北京大学出版社 32.00 1102 3261114 软件设计分析 高等教育出版社 34.50 1102 3302203 信息系统分析理论 经济科学出版社 24.50 1102 235
单选题
执行下列L语句:SELECT 出版单位,COUNT(*) FROM 图书; GROUP BY 出版单位 ORDER BY 2 DESC查询结果中,第一条记录的“出版单位”名称是( )。
【正确答案】
C
【答案解析】解析:本题SQL语句的功能是按“出版单位”对“图书”表记录进行分组,然后通过COUNT()函数统计每个出版社的图书种类数量,查询结果中包括“出版单位”和该出版单位出版的图书种类数量,查询结果中按第2个字段降序排序,即按出版单位出版的图书种类数量由高到低的顺序排序。
单选题
查询“上海”作者出版的图书情况,要求包含作者姓名、书名和价格信息,并按图书“价格”降序排列,下列SQL语句中正确的是( )。
-
-
-
-
【正确答案】
C
【答案解析】解析:本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用。如果使用超连接方式查询,则正确的语句格式为: SELECT…… FROM<数据库表1>INNER JOIN<数据库表2> ON<连接条件> WHERE…… 其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON<连接条件>指定两个进行表连接的条件字段。 如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。ORDBY BY短语的功能是对查询结果按指定字段进行排序。
单选题
执行下列L语句:SELECT MIN(价格) FROM 图书 INTO ARRAY temp则?temp[2]的结果是( )。
【正确答案】
D
【答案解析】解析:本题的查询结果中只有一个图书价格的最小值,并将查询结果保存到数组temp中。由于查询结果只有一个数据,即只有temp[1]中有数据,而本题要求的是temp[2]的值,所求的数组下标超出范围,系统报错。
单选题
有下列SQL语句:SELECT 姓名 FROM 作者 WHERE NOT EXISTS; (SELECT*FROM 图书 WHERE 作者编号=作者.作者编号)执行该语句后,查询结果中的字段值是( )。
【正确答案】
B
【答案解析】解析:本题中SQL语句的功能是查找还没有出版过图书的作者姓名。在“图书”表中暂时还没有作者“赵三立”出书的记录,所以查询结果为“赵三立”。EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回,即存在元组或不存在元组。
单选题
求至少出版3本以上图书的作者姓名及数量,下列SQL语句正确的是( )。
【正确答案】
B
【答案解析】解析:本题中首先通过GROUP BY短语按“作者编号”字段对“图书”表中的记录进行分组,然后利用 COUNT()分组统计每个作者的图书数量,再通过HAVING 子句限定出版数量至少在3本以上的记录。注意: HAVING子句用来进一步限定分组要满足的条件,必须要与GROUP BY短语连用并接在GROUP BY短语之后。