一、表的关联
union 是将两个表合并为一,会除种
union all 是将两张表和二为一,不会除重
二、表的联结
联结方式:cross join、inner join、left join、right join、full join
区别在于,如需要左边表的信息全显示就是left join,右边表全显示就是right join,两表共同的选取就是inner join,其他联结方式应用较少,以下为例子,可以看出同样的2张表,取不同的联结方式,结果也不同
三、表联结练习
1.查询所有学生的学号、姓名、选课数、总成绩
分析注意:由于这里用到student表的所有信息,所以是左查询left join,并且一个学生选了多门课程,所以对学号分组
2.查询平均成绩大于85的所有学生学号、姓名、平均成绩
分析注意:这个同样用到了student表的所有信息,所以用left join,学号分组,对分组后的选取用having语句,而不是where选取单行!
3.查询学生的选课情况:学号、姓名、课程号、课程名称
分析注意:这里通过表score做为中间联结,取共同部分,3个表通过使用2个inner join...on...语句实现
四、case表达式
case 表达式用来进行多条件判断
case when...then...else...end
五、练习注意
这里由于每个队打比赛有主场和客场的区别,所以球员名字会重复,注意用到distinct
这里注意由于用到了group by,所以再用到order by的时候一定要有group by里的所有元素,缺一个都不行!