查询所有张姓同学学号6_SQL多表查询

1、表的加法

  • 通过union(去除重复项),union all(不去除重复项)语句合并2个表.

查询所有张姓同学学号6_SQL多表查询_第1张图片

2、表的联结

  • 交叉联结(cross join):查询student表与score表以下图的方式组合排列显示.

查询所有张姓同学学号6_SQL多表查询_第2张图片

查询所有张姓同学学号6_SQL多表查询_第3张图片
  • 内联结(inner join):以内联结查询student表与score表,以学号为匹配关系,2张表同时存在的相同的学号行进行交叉联结.

查询所有张姓同学学号6_SQL多表查询_第4张图片
  • 左联结(left join):以左联结查询student1表与score1表,以学号为匹配关系,相同的学号项两两交叉联结并保留左表不同学号的项.

查询所有张姓同学学号6_SQL多表查询_第5张图片

where b.学号 is null 根据运行规则,左表不同的项对应右表为null.所以筛选右表为null的项,为左表不匹配学号的项.

查询所有张姓同学学号6_SQL多表查询_第6张图片
  • 右联结(right join):以右联结查询student1表与score1表,以学号为匹配关系,相同的学号项两两交叉联结并保留右表不同学号的项.where a.学号 is null同上.

查询所有张姓同学学号6_SQL多表查询_第7张图片
  • 全联结(full join):学号匹配项两两交叉联结,同时保留左右表不匹配项.

查询所有张姓同学学号6_SQL多表查询_第8张图片

3、联结应用案例

  • 左联结查询student表和score表,并更名为a和b,以学号匹配2表,以a表学号分组,显示select指定的列.

查询所有张姓同学学号6_SQL多表查询_第9张图片
  • 左联结查询student表和score表,并更名为a和b,以学号匹配2表,以a表学号分组,筛选平均成绩大于85的组,显示select指定的列.

查询所有张姓同学学号6_SQL多表查询_第10张图片
  • 内联结查询student表,score表和course表,并更名为a,b,c,以'学号'匹配ab表,以'课程号'匹配bc表,显示select指定的列.

查询所有张姓同学学号6_SQL多表查询_第11张图片

4、case表达式

  • case表达式,书写格式如下图所示.

查询所有张姓同学学号6_SQL多表查询_第12张图片
  • 查询score表,以课程号列分组,显示select指定的课程号列,及格人数列,不及格人数列.其中,当成绩大于等于60时,那么设置为1,任何其他情况为0,并统计和值为数量,命名为及格人数.不及格人数同理.

查询所有张姓同学学号6_SQL多表查询_第13张图片
  • 右联结查询score表和course表更名为ab,以课程号匹配2表,以a.课程号和b.课程名称列分组,显示select指定的b.课程号列,b.课程名称列,100-85列,84-74列,70-60列,<60列,其中,当成绩在85到100之间时,那么设置为1,任何其他情况为0,并统计和值为数量,命名为100-85.case其他列同理.

查询所有张姓同学学号6_SQL多表查询_第14张图片

你可能感兴趣的:(查询所有张姓同学学号6)