一、 表的加法:Union & Union All
二、 表的联结:Join
Cross/Inner/Left/Right/Full Join
1. Cross Join
2. Inner Join…On:查找出同时存在于两张表中的数据所对应的记录
3. Left Join…On:以左边的表为主表,读取出左表中所有需要的数据
查找出左表中两表非重复部分的数据记录
4. Right Join…On:以右边的表为主表,读取出右表中所有需要的数据
查找出右表中两表非重复部分的数据记录
5. Full Join…On:读取左表和右表中的所有行,有匹配的会进行合并,不匹配的地方填充空值
注意:MySQL不支持全联结。
三、 联结应用案例:使用SQL解决业务问题
1、 查询所有学生的学号、姓名、选课数、总成绩
2、 查询平均成绩大于85的所有学生的学号、姓名、平均成绩
3、 查询学生的选课情况:学号,姓名,课程号,课程名称
四、 Case表达式:当有多种情况需要条件判断时使用
① Else子句可以省略不写,默认为空值,但为了养成良好的SQL书写习惯,建议不要省略。
② 结尾的end必须写。
③ Case表达式可以写在SQL的任意一个子句里面。
1、查询学生每门课程成绩是否及格
2、查询每门课程的及格人数和不及格人数
3、 分段统计每门课程成绩的人数
五、 网页练习题
https://sqlzoo.net/wiki/The_JOIN_operation