前期学的都是单张表中查询,这一课将开始学习从多张表查询。
1、表的加法
(1)定义:合并两个或多个的表,这些表的列名师一样的
(2)union 两张表联结并删除重复值
(3)union all 两张表 两张表联结不会删除重复值
2、表的联结
(1)定义:表和表之间的关系在数据库里叫做联结(join),多表查找也是通过联结来实现的
(2)交叉联结(cross join)表中的每一行都与另一个表中的每一行联结在一起
(3)内联结(inner join)查找出同时存在两张表中的数据
(4)左联结(left join)
(5)右联结(right join)
3、联结应用案例
(1)如何用SQL 解决业务问题
1)翻译成大白话
2)写出分析思路
3)写出对应的sql语句
(2)练习
1)/*查询所有学生的学号、姓名、选课数、总成绩*/
2)/*查询平均成绩大于85的所有学生的学号、姓名和平均成绩*/
3)/*查询学生的选课情况:学号,姓名,课程号,课程名称*/
或
4、case表达式
(1)定义:当有多种情况需要条件判断的时候可以使用case表达式,只会返回一个值
(2)练习
1)/*查询每门课的及格人数和不及格人数*/
或者
2)/*使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计:各分段人数,课程号和课程名称*/
(2)应用注意事项
1)else可以不写,默认为空值,但在sql书写习惯上最好不省略;
2)最后的end必须写上,不能省略;
3)case表达式可以写在sql的任意子句中