![4f6d032ceeabf66cdbf092b09e1c94da.png](https://img-blog.csdnimg.cn/img_convert/4f6d032ceeabf66cdbf092b09e1c94da.png)
本文要点:
![649a0cdd5e752b7ee4db67f50a7f924f.png](https://img-blog.csdnimg.cn/img_convert/649a0cdd5e752b7ee4db67f50a7f924f.png)
一.表的加法
实例:
![b3363262e3f9548ad25ed155ef8ba636.png](https://img-blog.csdnimg.cn/img_convert/b3363262e3f9548ad25ed155ef8ba636.png)
注:用union 将两个表合并之后,对于重复的数据数自动删除。若需要保留两个表中的重复数,需用union all,如下图:
![007023ceba6636ce5a1207e97f4a5568.png](https://img-blog.csdnimg.cn/img_convert/007023ceba6636ce5a1207e97f4a5568.png)
二.表的联结
总结:
![5d2c23144c3f97c9c8cf2b9e600b458b.png](https://img-blog.csdnimg.cn/img_convert/5d2c23144c3f97c9c8cf2b9e600b458b.png)
1.交叉联结 cross join
![aa368091226aceaafc6441bc855199e9.png](https://img-blog.csdnimg.cn/img_convert/aa368091226aceaafc6441bc855199e9.png)
![dcda89e224aaa5f66b4fb1853b905483.png](https://img-blog.csdnimg.cn/img_convert/dcda89e224aaa5f66b4fb1853b905483.png)
2.内联结 inner join
实例:
![dcda89e224aaa5f66b4fb1853b905483.png](https://img-blog.csdnimg.cn/img_convert/dcda89e224aaa5f66b4fb1853b905483.png)
![64e6d70b201b429188d719a854600252.png](https://img-blog.csdnimg.cn/img_convert/64e6d70b201b429188d719a854600252.png)
![d2ccd4f2d1ab2710aa33506fdea6c153.png](https://img-blog.csdnimg.cn/img_convert/d2ccd4f2d1ab2710aa33506fdea6c153.png)
3.左联结 left join
将左侧作为主表把表中的数据全部取出
实例:
![b3376280bd41c60fb713228fa07830a4.png](https://img-blog.csdnimg.cn/img_convert/b3376280bd41c60fb713228fa07830a4.png)
![c2b34154b409b9ce386589a3cf5ce34e.png](https://img-blog.csdnimg.cn/img_convert/c2b34154b409b9ce386589a3cf5ce34e.png)
延伸:想要取出左边表中红色部分的数据,那么就意味着在左联结的基础上去掉公共部分的数据
![79ff85d16217ae6fa1461f9b7a1ab5e4.png](https://img-blog.csdnimg.cn/img_convert/79ff85d16217ae6fa1461f9b7a1ab5e4.png)
![41a4bb9ad8f0c22a756131ac868fb5a7.png](https://img-blog.csdnimg.cn/img_convert/41a4bb9ad8f0c22a756131ac868fb5a7.png)
4.右联结 right join (和左联结类同)
实例:
![10b136024f607b7ea5fd31fbb6ab64a9.png](https://img-blog.csdnimg.cn/img_convert/10b136024f607b7ea5fd31fbb6ab64a9.png)
![5f603f962c55ed4328a2a5fcdde2c21e.png](https://img-blog.csdnimg.cn/img_convert/5f603f962c55ed4328a2a5fcdde2c21e.png)
5.全联结
注:MySQL 不支持全联结
三.联结应用案例
实例1:查询所有学生的学号、姓名、选课数、总成绩
![5d009c3d51569509039920d8a843f0a3.png](https://img-blog.csdnimg.cn/img_convert/5d009c3d51569509039920d8a843f0a3.png)
![1e9890a849b85fb1c1b60fd3fa796ba3.png](https://img-blog.csdnimg.cn/img_convert/1e9890a849b85fb1c1b60fd3fa796ba3.png)
实例2:查询平均成绩大于80分学生的学号、姓名、平均成绩
思路点拨:
将问题拆解成两步--1.查询所有学生的学号、姓名、平均成绩
2.进一步查找出平均成绩大于80分的学生(对分组后的结果指定条件)
![baf41ae09b4747c0ae1b5dddf2dbc01e.png](https://img-blog.csdnimg.cn/img_convert/baf41ae09b4747c0ae1b5dddf2dbc01e.png)
实例3.查询学生的选课情况:学号,姓名,课程号,课程名称
重点:三表联结
![3292dad0cf09111116950ac0b46dc819.png](https://img-blog.csdnimg.cn/img_convert/3292dad0cf09111116950ac0b46dc819.png)
![6bb0838b4ba71841791df7151626d139.png](https://img-blog.csdnimg.cn/img_convert/6bb0838b4ba71841791df7151626d139.png)
四.case表达式
子句格式:
case when<判断表达式>then<表达式>
when<判断表达式>then<表达式>
···
else<表达式>
end /*不能省略*/
实例:查询课程的及格情况
![afb03fdb7e6f5dd8a3e756157ca9ceb1.png](https://img-blog.csdnimg.cn/img_convert/afb03fdb7e6f5dd8a3e756157ca9ceb1.png)
延伸1:查询出每门课程的及格人数和不及格人数
![66d18fd43e88ec80c7dfca6751b525d5.png](https://img-blog.csdnimg.cn/img_convert/66d18fd43e88ec80c7dfca6751b525d5.png)
延伸2. 使用分段[100-85],[85-70],[70-60],[<60]来统计各分段成绩的人数,课程号,课程名称
![f505db897d4ff52283a82cc8981c0ba0.png](https://img-blog.csdnimg.cn/img_convert/f505db897d4ff52283a82cc8981c0ba0.png)
五.课后练习