题目
有学生表 students (学号,姓名,性别,专业) 及成绩表 score (学号,语文,英语),要查询所有学生的姓名和语文,英语成绩,连接条件应是( )A where students.学号 = score.学号B where students.学号C where students.姓名 = score.学号D where students.姓名 = score.姓名
有学生表 students (学号,姓名,性别,专业) 及成绩表 score (学号,语文,英语),要查询所有学生的姓名和语文,英语成绩,连接条件应是( )
A where students.学号 = score.学号
B where students.学号
C where students.姓名 = score.学号
D where students.姓名 = score.姓名
题目解答
答案
A选项,这是一个常见的表连接条件,在学生表和成绩表中使用学号字段进行连接,符合题意;
B选项,在WHERE子句中,需要指定条件的完整表达式,而不仅仅是一个字段名,不合题意;
C选项,在连接两个表时,应该使用相同的字段(或者具有相同值的字段)作为连接条件,这里使用姓名和学号进行连接是不正确的,不合题意;
D选项,连接两个表时应该使用相同的字段(或者具有相同值的字段)作为连接条件,这里使用姓名字段进行连接也是不正确的,不合题意;
综上所述,本题应该选择选项A
解析
考查要点:本题主要考查SQL中表连接条件的正确使用,需要理解两个表之间的关联字段选择。
解题核心思路:
- 明确表结构:学生表
students和成绩表score的关联字段是学号(唯一标识学生)。 - 连接条件规则:连接两个表时,必须使用具有相同值的字段作为条件,通常为外键关联。
- 排除干扰项:注意字段是否存在、数据类型是否匹配、逻辑是否合理。
破题关键点:
- 成绩表中只有
学号字段与学生表关联,其他字段(如姓名)不存在于成绩表中。 - 学号是唯一能唯一标识学生的字段,直接作为连接条件。
选项分析
选项A:where students.学号 = score.学号
- 正确性:两个表均包含
学号字段,且学号是学生的唯一标识,通过等值连接能正确关联学生与成绩。 - 结论:符合题意,正确。
选项B:where students.学号
- 错误原因:
WHERE子句中必须提供完整的条件表达式(如比较运算),仅字段名无法构成有效条件。 - 结论:语法错误,排除。
选项C:where students.姓名 = score.学号
- 错误原因:
- 成绩表
score中没有姓名字段。 姓名是字符串类型,学号通常是数字或代码,两者无法等值匹配。
- 成绩表
- 结论:逻辑错误,排除。
选项D:where students.姓名 = score.姓名
- 错误原因:
- 成绩表
score中没有姓名字段。 - 即使存在
姓名字段,也存在同名学生导致关联错误的风险。
- 成绩表
- 结论:字段不存在且逻辑不可靠,排除。