zoukankan      html  css  js  c++  java
  • 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题]

  • 相关阅读:
    【乱侃】How do they look them ?
    【softeware】Messy code,some bug of Youdao notebook in EN win7
    【随谈】designing the login page of our project
    【web】Ad in security code, making good use of resource
    SQL数据库内存设置篇
    关系数据库的查询优化策略
    利用SQL未公开的存储过程实现分页
    sql语句总结
    sql中使用cmd命令注销登录用户
    SQLServer 分页存储过程
  • 原文地址:https://www.cnblogs.com/charles101/p/14167402.html
Copyright © 2011-2022 走看看