(31)~(35)题中使用下列数据表。
“学生”表:学号C(8),姓名C(8),性别C(2),系名(6)
“课程”表:课程编号C(4),课程名称C(12),开课系名C(10)
“成绩”表:学号C(8),课程编号C(4),成绩N(6,2)
查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句正确的是()。
A.SELECT 学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; FOR 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC
B.SELECT 学生.姓名,学生.系名,成绩.成绩 JOIN 学生,课程,成绩; ON 学生.学号=成绩.学号; ON 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC
C.SELECT 学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE 学生.学号=成绩.学号; OR 课程.课程编号=成绩.课程编号; OR 课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC
D.SELECT 学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC
参考答案:D
解析:
本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用,如果使用超连接方式查询,则正确的语句格式为:
SELECT……
FROM<数据库表1>INNER JOIN<数据库表2>
ON<连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON<连接条件>指定两个进行表连接的条件字段。
如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。