软件测试面试真题 | 经典 SQL 查询
获取更多面试真题
经典面试题
已知有如下 3 张表:
学⽣表:student (学号, 学⽣姓名, 出⽣年⽉, 性别)
成绩表:score (学号, 课程号, 成绩)
课程表:course (课程号, 课程名称, 教师姓名)
根据以上信息按照下⾯要求写出对应的 SQL 语句
考察点
分析数据表的关联关系
SQL 的编写能力
技术点
SQL 查询语法
创建学生表
学⽣表:student
学号:studentId,主键
学⽣姓名:studentName
出⽣年⽉:birthDate
性别:sex
创建成绩表
成绩表:score
学号:studentId,主键
课程号:courseId,主键
成绩:score
创建课程表
汇总分析
查询课程编号为 “0002” 的总成绩
查询选了课程编号为 “0002” 的学生人数
分组
查询各科成绩最高和最低分
查询每门课程被选修的学生数
分组结果的条件
查询平均成绩大于 60 分学生的学号
查询⾄少选修两门课程的学⽣学号
复杂查询
查询所有有过不及格(低于 60 分)成绩的学生姓名(不重复)
查询 2 门以上(含 2 门)不及格(低于 60 分)的学生姓名
查询没有选过王老师的课的所有学生姓名
查询选过王老师的课并且及格的所有学生姓名
查询所有学⽣的学号、姓名、选课数、总成绩
答案总结
SQL 查询问题分析思路
查询的内容是什么
查询的内容从哪张表中查找
如果查询的内容,或者查询的条件分别在不同的表中,需要使用表连接或者子查询
确定查询的条件是什么
如果使用了聚合函数,则要对某个字段进行分组
是否需要对分组后的结果进行条件过滤
是否需要排序
是否需要限定输出数据的数量
获取更多面试真题
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/e5d02ed1a6bc8a021dc1b57a1】。文章转载请联系作者。
评论