• MySQL经典50题


    在软件开发中,我们将输入交给用户,而输出则是我们对数据汇总统计分析呈现给用户,这些题考察SQL的编写能力。对于这类型的题目,更多是需要对这些题考察对SQL的编写能力,对于这类型的题目,需要先把4张表之间的关联关系搞清楚了,最好的办法是自己在草稿纸上画出关联图,然后再编写对应的SQL语句就比较容易了。下图是这4张表对应的关系图,可以看出它们之间是通过哪些外键关联起来的:

    简单查询

    考察知识点

    • SQL 的书写规则是什么?
    • 如何指定查询条件?
    • SQL 是如何运行的?

    练习题

    -查询姓“猴”的学生名单
    -查询姓“孟”老师的个数

    汇总分析

    -查询课程编号为“0002”的总成绩
    -查询选了课程的学生人数

    分组

    -查询各科成绩最高和最低的分, 以如下的形式显示:课程号,最高分,最低分
    -查询每门课程被选修的学生数
    -查询男生、女生人数
    分组结果的条件
    -查询平均成绩大于60分学生的学号和平均成绩
    -查询至少选修两门课程的学生学号
    -查询同名同姓学生名单并统计同名人数
    -查询不及格的课程并按课程号从大到小排列
    -查询每门课程的平均成绩,结果按平均成绩升序排序,平均成绩相同时,按课程号降序排列
    -检索课程编号为“0004”且分数小于60的学生学号,结果按按分数降序排列
    -统计每门课程的学生选修人数(超过2人的课程才统计)
    -查询两门以上不及格课程的同学的学号及其平均成绩

    汇总分析: 查询结构排序 分组的条件指定

    -查询学生的总成绩并进行排名(知识点: 分组查询)
    -查询平均成绩大于60分的学生的学号和平均成绩(知识点: 分组+条件)

    复杂查询

    考察知识点

    • 分组汇总
    • 子查询
    • 标量子查询
    • 关联子查询

    练习题

    -查询所有课程成绩小于60分学生的学号、姓名(知识点: 子查询)
    -查询没有学全所有课的学生的学号、姓名(知识点: in,子查询)
    -查询出只选修了两门课程的全部学生的学号和姓名
    -1990年出生的学生名单(X)
    -查询各科成绩前两名的记录 (TOPN)
    -表结构的转换

    多表查询

    考察知识点

    • 什么是交叉联结?
    • 什么是交叉联结?
    • 什么是左联结?
    • 什么是右联结?
    • 什么是全联结?

    练习

    -查询所有学生的学号、姓名、选课数、总成绩
    -查询平均成绩大于85的所有学生的学号、姓名和平均成绩
    -查询学生的选课情况:学号,姓名,课程号,课程名称
    -查询出每门课程的及格人数和不及格人数(case)
    -使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计:各分数段人数,课程号和课程名称(case)
    -查询课程编号为0003且课程成绩在80分以上的学生的学号和姓名|

    多表连接

    -检索"0001"课程分数小于60,按分数降序排列的学生信息
    -查询不同老师所教不同课程平均分从高到低显示
    -查询课程名称为"数学",且分数低于60的学生姓名和分数
    -查询任何一门课程成绩在70分以上的姓名、课程名称和分数(与上题类似)
    -查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩(知识点: 分组+条件+多表连接)
    -查询不同课程成绩相同的学生的学生编号、课程编号、学生成绩
    -查询课程编号为“0001”的课程比“0002”的课程成绩高的所有学生的学号
    -查询学过编号为“0001”的课程并且也学过编号为“0002”的课程的学生的学号、姓名
    -查询学过“孟扎扎”老师所教的所有课的同学的学号、姓名
    -查询没学过"孟扎扎"老师讲授的任一门课程的学生姓名(与上题类似,"没学过"用not in来实现)
    -查询没学过“孟扎扎”老师课的学生的学号、姓名(与上题类似)
    -查询选修“孟扎扎”老师所授课程的学生中成绩最高的学生姓名及其成绩(与上题类似,用成绩排名,用 limit 1得出最高一个)
    -查询至少有一门课与学号为“0001”的学生所学课程相同的学生的学号和姓名
    -按平均成绩从高到低显示所有学生的所有课程的成绩以及平均成绩

    原文地址:[图解SQL面试题:经典50题]

  • 相关阅读:
    AX 2012 Form and Parts
    AX 2012 SSRS print setting-报表打印输出设置
    AX 2012 关于parts 添加
    AX Dynamic 2012 tabletype:TempDB使用
    AX Dynamic 2012 SSRS 按行数分页
    AX Dynamic 2012 SSRS autorepot中取当前公司名、打印时间、打印页码
    AX Dynamics 去中文字符长度:中文字符当2个字符处理
    AX dynamics 2012 ssrs 开发报错:Native compiler return value: ‘[BC30179]
    在Ubuntu 下编译c语言
    在ubuntu加载flash的方法
  • 原文地址:https://www.cnblogs.com/charles101/p/14167402.html
Copyright © 2020-2023  润新知