查询所有张姓同学学号6_SQL多表查询
1、表的加法
通过union(去除重复项),union all(不去除重复项)语句合并2个表.
2、表的联结
交叉联结(cross join):查询student表与score表以下图的⽅式组合排列显⽰.
sql中union多表合并
内联结(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其他列同理.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。