一、表的加法
加法(union):把两个表的数据按行合并在一起,重复行删除保留一个。
如查保留两个表重复的行,需在union后加上all

二、表的联结
1、交叉联结(笛卡尔积):表中的每一行与一个表中的每一行合并在一起
2、内联结(inner join):查找出同时存在两张表中的数据

内联结运行方式:取出符合条件的行——交叉联结
3、左联结(left join):将左侧全部数据取出来
左联结运行方式:将左侧的表做为主表,把全部数据取出来,再取出右侧与左侧有相同数据的行,将两个表取出的表进行交叉合并。

4、右联结(right join):将右侧全部数据取出来
右联结运行方式:将右侧的表做为主表,把全部数据取出来,再取出左侧与右侧有相同数据的行,将两个表取出的表进行交叉合并。

5、全联结(full join):返回左侧和右侧的所有行,有相同的行时进行合并,没有某行相匹配时用空值填充。
三、联结应用案例
1、查询所有学生的学号、姓名、选课数、总成绩

2、查询平均成绩大于85的所有学生的学号、姓名和平均成绩

3、查询学生的选课情况;学号、姓名、课程号、课程名称

四、case表达式
case表达式解决复杂的查询问题,相当于进行一个条件判断的函数,用来判断某一行是否满足条件。

查询每位学生的成绩是否及格

查询出每门课程的及格人数和不及格人数

使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计:各分段人数、课程号和课程名称

注意事项
- else子句可以省略不写,默认为nul。
- end不能省略不写
- case表达式可以写在SQL任意子句里面