![71d584876f7593ad74172ea59f80eefb.png](https://img-blog.csdnimg.cn/img_convert/71d584876f7593ad74172ea59f80eefb.png)
![8868aafe1e23b11409282d4f3513f218.png](https://img-blog.csdnimg.cn/img_convert/8868aafe1e23b11409282d4f3513f218.png)
一.表的加法
![1e135a2a1e5c91e0abf0137b4c9f8fd2.png](https://img-blog.csdnimg.cn/img_convert/1e135a2a1e5c91e0abf0137b4c9f8fd2.png)
![52b6c20357132990c7926ea9ffa08468.png](https://img-blog.csdnimg.cn/img_convert/52b6c20357132990c7926ea9ffa08468.png)
二 . 表的联结
![553799a636553d7ec56c279670b17306.png](https://img-blog.csdnimg.cn/img_convert/553799a636553d7ec56c279670b17306.png)
![4c543938ccdf5842a69faed5aabc0091.png](https://img-blog.csdnimg.cn/img_convert/4c543938ccdf5842a69faed5aabc0091.png)
![529a71f999afd56f94b161e77666dce6.png](https://img-blog.csdnimg.cn/img_convert/529a71f999afd56f94b161e77666dce6.png)
![d67ec9ea60ceeff37d8e8cd78f7a472c.png](https://img-blog.csdnimg.cn/img_convert/d67ec9ea60ceeff37d8e8cd78f7a472c.png)
![8045ba3c0a3797e28c7eef1420204331.png](https://img-blog.csdnimg.cn/img_convert/8045ba3c0a3797e28c7eef1420204331.png)
三.解决SQL实际问题的案例及三步走分析方法
问题1:查询所有学生的学号,姓名,选课数及总成绩:
第一步,翻译成大白话:
1)学号,姓名(student)
2)选课数(每个学生的选课数目:成绩表score,按学号分类,对课程号计数count)
3)总成绩(每个学生的总成绩):
成绩表score,
按学号分组,对成绩求sum
第二步:写出分析思路:
select 查询结果[学号,姓名,选课数,总成绩]
from 哪张表(学生表student,成绩表score)
两个表怎么联结?通过学号,用哪种联结?左联接
where 查询条件(没有)
group by 分组(
每个学生的选课数目:按学号分组,对课程号求count
每个学生的总成绩:按学号分组,对成绩求sum)
having 对分组结果指定条件(没有)
order by 对查询结果排序(没有)
limit 从查询结果中取出指定行(没有);
第三步:写出sql语句:
![e2ae9164e27ab894893390f2a4b89551.png](https://img-blog.csdnimg.cn/img_convert/e2ae9164e27ab894893390f2a4b89551.png)
问题2:查询平均成绩大于85的所有学生的学号,姓名和平均成绩
第一步:
1)查询出所有学生的学号,姓名,平均成绩
学号,姓名再student表中
平均成绩(每个学生的平均成绩在成绩表score中,按学号分组,平均成绩:avg(成绩))
2)平均成绩>85
第二步:
select 查询结果[学号,姓名,平均成绩]
from 哪张表(学生表student,成绩表score)
两个表怎么联结?通过学号,用哪种联结?左联接
where 查询条件(没有)
group by 分组(
平均成绩:按学号分组,对成绩求avg)
having 对分组结果指定条件(b.成绩)>85
order by 对查询结果排序(没有)
limit 从查询结果中取出指定行(没有);
第三步:
![f083bfd754c9a3e1c0b504828f77610b.png](https://img-blog.csdnimg.cn/img_convert/f083bfd754c9a3e1c0b504828f77610b.png)
问题3:查询学生的选课情况:学号,姓名,课程号,课程名称
第一步:
1)查询出所有学生的学号,姓名(student)课程号以及课程名称(课程表course)
第二步
select 查询结果[学号,姓名,课程号,课程名称]
from 哪张表(学生表student,课程表course)
两个表怎么联结?通过成绩表产生联系 用哪种联结?两两使用内联结
where 查询条件(没有)
group by 分组(没有)
order by 对查询结果排序(没有)
limit 从查询结果中取出指定行(没有);
第三步:
![b521867a46d8e74edb63f7820084bc63.png](https://img-blog.csdnimg.cn/img_convert/b521867a46d8e74edb63f7820084bc63.png)
四. case表达式的使用
case表达式:
case when 判断表达式 then 表达式
when 判断表达式 then 表达式
else 表达式
end
![dc785238228e8261aa087efbdb6b5a83.png](https://img-blog.csdnimg.cn/img_convert/dc785238228e8261aa087efbdb6b5a83.png)
![5192a60bcb934141a39627dc20e44062.png](https://img-blog.csdnimg.cn/img_convert/5192a60bcb934141a39627dc20e44062.png)
五.SQLZOO练习
![50e269bde70c8264be05ee8eec926f14.png](https://img-blog.csdnimg.cn/img_convert/50e269bde70c8264be05ee8eec926f14.png)
![c03661c8dd1733042519489937ce1979.png](https://img-blog.csdnimg.cn/img_convert/c03661c8dd1733042519489937ce1979.png)
![1f6092bf156ec9a1d34e4449b9b3c4e2.png](https://img-blog.csdnimg.cn/img_convert/1f6092bf156ec9a1d34e4449b9b3c4e2.png)
![5040cee43b149abf2335c9d53a95f474.png](https://img-blog.csdnimg.cn/img_convert/5040cee43b149abf2335c9d53a95f474.png)
![ac2336c078b0473e4a6ce043cb0ac788.png](https://img-blog.csdnimg.cn/img_convert/ac2336c078b0473e4a6ce043cb0ac788.png)
![d2ec1fc420c27cb07e2323e5ccd2e9de.png](https://img-blog.csdnimg.cn/img_convert/d2ec1fc420c27cb07e2323e5ccd2e9de.png)
![349e014de7f6d6b66fcf99cc925e5ad0.png](https://img-blog.csdnimg.cn/img_convert/349e014de7f6d6b66fcf99cc925e5ad0.png)