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

1、表的加法

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

f3461bf860ff8ea29087240e509c8198.png

2、表的联结

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

6ae7434f25a22d6486730f7e27d2264d.png

e7ca510eab4fc2fcf80d22aaaa7ae1ab.png
  • 内联结(inner join):以内联结查询student表与score表,以学号为匹配关系,2张表同时存在的相同的学号行进行交叉联结.

011b1a77b914b39e6e8f43a8eb949155.png
  • 左联结(left join):以左联结查询student1表与score1表,以学号为匹配关系,相同的学号项两两交叉联结并保留左表不同学号的项.

f9463d31dc8165d2b1f4e2fc468099e0.png

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

89e827c7b3697ab213e7e1756b016794.png
  • 右联结(right join):以右联结查询student1表与score1表,以学号为匹配关系,相同的学号项两两交叉联结并保留右表不同学号的项.where a.学号 is null同上.

2779378741d28548bd67bfc881df40e1.png
  • 全联结(full join):学号匹配项两两交叉联结,同时保留左右表不匹配项.

ff0073d09f454c97d7f3fa3026d64182.png

3、联结应用案例

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

eeb877d35c6f118dc325c0e7197110aa.png
  • 左联结查询student表和score表,并更名为a和b,以学号匹配2表,以a表学号分组,筛选平均成绩大于85的组,显示select指定的列.

779902abec873a21d68f3cfd236779ba.png
  • 内联结查询student表,score表和course表,并更名为a,b,c,以'学号'匹配ab表,以'课程号'匹配bc表,显示select指定的列.

cfce67e0826eebe4bea4f07f114d3fcb.png

4、case表达式

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

89dc8e1ee0aade7d645f69b7bec5b309.png
  • 查询score表,以课程号列分组,显示select指定的课程号列,及格人数列,不及格人数列.其中,当成绩大于等于60时,那么设置为1,任何其他情况为0,并统计和值为数量,命名为及格人数.不及格人数同理.

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

e0857f1f54e82e9b7ba26edda6864699.png
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值