mysql50题_SQL经典50题题解

本篇文章主要是对SQL经典50题进行详细解析。

解析包含:1、解题思路,2、考核知识点,3、答案;

首先,表结构用脑图输出出来,如下所示:

dfd21a383a33

表结构

先进行数据准备,建表以及插入数据。

dfd21a383a33

建表

1.查询"01"课程比"02"课程成绩高的学生的信息及课程分数

解题思路:

第一步:关键词有“课程编号”、“课程成绩”、“学生信息”,锁定使用表:学生表、成绩表。

第二步:给出学生信息及课程分数,通过主键sid关联学生表和课程表。

第三步:比较同一个学生不同课程的成绩,再关联一次课程表,利用sid、cid进行关联。

第四步:根据题目,用where比较分数筛选结果。

考核知识点:join,where

答案:

dfd21a383a33

题1

1.1 查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )

解题思路:

第一步:关键词有“课程编号”、“学生编号”,锁定使用表:成绩表。

第二步:分别查询出存在" 01 "课程的学生和存在" 02 "课程的学生。

第三步:对两个子查询进行关联,用sid进行左联接。

考核知识点:where, 子查询,left join

答案:

dfd21a383a33

题1.1

1.2 查询同时存在01和02课程的情况

解题思路:同1.1,把left join改为join

考核知识点:where, 子查询,join

答案:

dfd21a383a33

题1.2

1.3 查询选择了02课程但没有01课程的情况

解题思路:类似1.1,把left join改为right join

考核知识点:where, 子查询,right join

答案:

dfd21a383a33

题1.3

小结:上面的题主要考察join、left join、right join。

2.查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩

解题思路:

第一步:关键词有“平均成绩”、“学生编号”、“学生姓名”,锁定使用表:成绩表、学生表。

第二步:给出学生信息及课程分数,通过主键sid关联学生表和课程表。。

第三步:根据题目,用group by聚合计算出平均成绩,然后筛选出大于等于60分的学生。

考核知识点:join、group by、avg()

答案:

dfd21a383a33

题2

3.查询在 SC 表存在成绩的学生信息

解题思路:

第一步:关键词有“SC”、“学生信息”,锁定使用表:成绩表、学生表。

第二步:用EXISTS判断在SC表存在成绩的学生信息

考核知识点:EXISTS语句

答案:

dfd21a383a33

题3

4.查询所有同学的学生编号、学生姓名、选课总数、所有课程的成绩总和

解题思路:

第一步:关键词有“学生编号”、“学生姓名”、“选课总数”、“课程成绩”,锁定使用表:成绩表、学生表。

第二步:通过主键sid关联学生表成绩表,得到学生信息、学生成绩的宽表

第三步:根据题目,用group by聚合计算选课总数和总成绩

考核知识点:left join、group by、count()、sum()、ifnull()

答案:

dfd21a383a33

题4

5.查询「李」姓老师的数量

解题思路:

第一步:关键词有“老师的数量”,锁定使用表:教师表。

第二步:先筛选出「李」姓老师,再汇总统计「李」姓老师的数量

考核知识点:like、where、%、count()

答案:

dfd21a383a33

题5

6.查询学过「张三」老师授课的同学的信息

解题思路:

第一步:关键词有“老师”、“学生信息”,锁定使用表:教师表、学生表、成绩表、课程表。

第二步:通过sid关联学生表、成绩表,再通过cid关联课程表,最后通过tid关联教师表。

第三步:用where筛选出「张三」老师授课的同学的信息。

考核知识点:多重连接join

答案:

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值