1.表的加法
使用union将两张表的数据按行合并在一起
在union后面加上all就会把所有的数据合并在一起(包括重复值)
2.表连结
交叉连结(笛卡尔积):cross join
内连结:inner join(查找同时存在几张表的数据)
左连结:left join(将左侧表作为主表,主表中的数据全部读取出来)
去掉左连结里的公共部分
右连结:right join(将右侧表里的数据全部读取出来)
去掉右连结里的公共部分
全连结:返回两个表中的所有行,当某行和另一个表中有匹配时会合并,没有则空值
- 查询所有学生的学号,姓名,选课数和总成绩
- 查询平均成绩>85的学生的学号,姓名,平均成绩
- 查询学生的选课情况
3.case表达式
case:查找到满足条件的数据之后跳出运行下面的语句,没查找到时会逐个运行完
- 查找成绩及格和不及格的学生人数
- 查找各分数段成绩的学生个数
case用于多种情况需要条件判断时,end必须写,case可以写在sql语句中的任意字句里
4.练习
多表查询时where语句中也要标明是哪个表的
分清不同的列名是属于哪个表的
第十题使用左连结、右连结各写一次
分清group by和order by之间的区别和联系
5.总结
- 进行多表查询时要注意不同的表如何连结在一起
- case语句中的括号不能落下
- 看清不同表的列名