(31)到(35)题使用下列数据表。
“作者”表:
作者编号 姓名 所在城市
1101张晓云 北京
1102李 丽 北京
1103袁熙林 上海
1104赵三立 广州
1105方德胜 上海
1106刘 清 北京
“图书”表:
图书编号 书名出版单位 价格作者编号页数
1101 计算机基础知识 经济科学出版社 32.80 1101 252
2202 会计基础知识 经济科学出版社 17.80 1105 215
1102 VB 9.0初级入门 人民邮电出版社 22.50 1102 264
1103 Word 2003基础知识 大地出版杜 19.80 1101 298
1105 VFP 6.0程序设计基础 大地出版社 38.50 1103 310
2201 中级会计财务知识 经济科学出版社 28.80 1106 245
1110 计算机网络基础 高等教育出版社 26.50 1101 258
11ll 计算机组成原理 北京大学出版社 31.20 1103 98
1112 数据库设计原理 高等教育出版杜 35.50 1101 330
1113 C语言程序设计 北京大学出版社 32.00 1102 326
1114 软件设计分析 高等教育出版社 34.50 1102 330
2203 信息系统分析理论 经济科学出版社 24.50 1102 235
查询“上海”作者出版的图书情况,要求包含作者姓名、书名和价格信息,并按图书“价格”降序排列,下列SQL语句正确的是( )。
A.SELECT 姓名,书名,价格 FROM 图书,作者;
JOIN图书.作者编号=作者.作者编号;
WHERE所在城市=“上海”;
ORDER BY价格DESC
B.SELECT 姓名,书名,价格 FROM 图书,作者;
JOIN图书.作者编号=作者.作者编号;
ON所在城市=“上海”;
ORDER BY价格
C.SELECT 姓名,书名,价格:FROM 图书,作者;
WHERE 图书.作者编号=作者.作者编号;
AND所在城市=“上海”;
ORDER BY 价格 DESC
D.SELECT 姓名,书名,价格 FROM 图书,作者;
WHERE 图书.作者编号=作者.作者编号;
AND所在城市=“上海”;
ORDER BY价格
参考答案:C
解析: 本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用。如果使用超连接方式查询,则正确的语句格式为:
SELECT......
FROM<数据库表1>INNER JOIN<数据库表2>
ON<连接条件>
WHERE......
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON<连接条件>指定两个进行表连接的条件字段。
如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在 WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。ORDBY BY短语的功能是对查询结果按指定字段进行捧序。