1、表的加法
- 通过union(去除重复项),union all(不去除重复项)语句合并2个表.
2、表的联结
- 交叉联结(cross join):查询student表与score表以下图的方式组合排列显示.
- 内联结(inner join):以内联结查询student表与score表,以学号为匹配关系,2张表同时存在的相同的学号行进行交叉联结.
- 左联结(left join):以左联结查询student1表与score1表,以学号为匹配关系,相同的学号项两两交叉联结并保留左表不同学号的项.
where b.学号 is null 根据运行规则,左表不同的项对应右表为null.所以筛选右表为null的项,为左表不匹配学号的项.
- 右联结(right join):以右联结查询student1表与score1表,以学号为匹配关系,相同的学号项两两交叉联结并保留右表不同学号的项.where a.学号 is null同上.
- 全联结(full join):学号匹配项两两交叉联结,同时保留左右表不匹配项.
3、联结应用案例
- 左联结查询student表和score表,并更名为a和b,以学号匹配2表,以a表学号分组,显示select指定的列.
- 左联结查询student表和score表,并更名为a和b,以学号匹配2表,以a表学号分组,筛选平均成绩大于85的组,显示select指定的列.
- 内联结查询student表,score表和course表,并更名为a,b,c,以'学号'匹配ab表,以'课程号'匹配bc表,显示select指定的列.
4、case表达式
- case表达式,书写格式如下图所示.
- 查询score表,以课程号列分组,显示select指定的课程号列,及格人数列,不及格人数列.其中,当成绩大于等于60时,那么设置为1,任何其他情况为0,并统计和值为数量,命名为及格人数.不及格人数同理.
- 右联结查询score表和course表更名为ab,以课程号匹配2表,以a.课程号和b.课程名称列分组,显示select指定的b.课程号列,b.课程名称列,100-85列,84-74列,70-60列,<60列,其中,当成绩在85到100之间时,那么设置为1,任何其他情况为0,并统计和值为数量,命名为100-85.case其他列同理.