本关重点:1、标的加法;2、标的连接;3、联结应用案例;4、case表达式
1、标的加法 union
利用union 可以将两张结构相同的表,相加在一起,并自动将重复的数据识别出来并只保留唯一值;union all 用法不同处在于,不会区别不同数据,而是将所有数据都选择进来。
例:
![eb0403e1d977ef4ebccf8a52dd2fe7c4.png](https://img-blog.csdnimg.cn/img_convert/eb0403e1d977ef4ebccf8a52dd2fe7c4.png)
![cfcab83648c1d00605ffbf2244a73967.png](https://img-blog.csdnimg.cn/img_convert/cfcab83648c1d00605ffbf2244a73967.png)
2、表的联结 join
1)交叉联结 cross join :将表中的每一行都与另个表中的每一行合并在一起,交叉联结结果的行数,是两张表行数的乘积;
2)内联结:inner join: 已关键字为基础, 查找出同时存在于两张表中的数据;
例:
![bd817c2e841f333f0f711b4741baae11.png](https://img-blog.csdnimg.cn/img_convert/bd817c2e841f333f0f711b4741baae11.png)
3)左联结 left join: 以关键字为基础,将左面表中的数据全部取出来,同时取出右边表中相匹配的数据。
例:
![ca3d087537226c830625f5385496a400.png](https://img-blog.csdnimg.cn/img_convert/ca3d087537226c830625f5385496a400.png)
![9d1d9ce81c121becbb21879ebb3d3747.png](https://img-blog.csdnimg.cn/img_convert/9d1d9ce81c121becbb21879ebb3d3747.png)
4)右联结 right join :以关键字为基础,取出右边表中的全部数据,同时左边表中与用变表中具有相同关键字的数据会被取出。
例:
![dce8c00b76a8a51003b6b38c850e41a6.png](https://img-blog.csdnimg.cn/img_convert/dce8c00b76a8a51003b6b38c850e41a6.png)
5) 全联结: full join:以关键字为基础,显示取出两个表中均对应相同关键字的行,进行联结,在针对两张表中关键字不一一对应的数据,进行操作,左侧表中的数据取出,若右侧表中没有对应关键字,则以null代替,反之同样。(mysql不支持全联结)
3、 联结应用案例
1)、查询所有学生的学号、姓名、选课数、总成绩
![2559e813019373f5cc31ba097416058a.png](https://img-blog.csdnimg.cn/img_convert/2559e813019373f5cc31ba097416058a.png)
2)查询平均成绩大于85的所有学生的学号,姓名,平均成绩
![cf08fc31b515d842ff6f352edd99ef6b.png](https://img-blog.csdnimg.cn/img_convert/cf08fc31b515d842ff6f352edd99ef6b.png)
3)查询学生的选课情况:学号 姓名 课程号 课程名称
![f5ffd338f19c6b69cedd63fa7d0829dd.png](https://img-blog.csdnimg.cn/img_convert/f5ffd338f19c6b69cedd63fa7d0829dd.png)
4、 case 表达式
![835314cb034c9581637b9779afa442ce.png](https://img-blog.csdnimg.cn/img_convert/835314cb034c9581637b9779afa442ce.png)