sql 加法_SQL多表查询

一、表的加法

加法(union):把两个表的数据按行合并在一起,重复行删除保留一个。

如查保留两个表重复的行,需在union后加上all

f746f0c9e1b1d759ede590bb57559a20.png

二、表的联结

1、交叉联结(笛卡尔积):表中的每一行与一个表中的每一行合并在一起

2、内联结(inner join):查找出同时存在两张表中的数据

9074291e7138427cde3fbcb14a8c5efc.png

内联结运行方式:取出符合条件的行——交叉联结

3、左联结(left join):将左侧全部数据取出来

左联结运行方式:将左侧的表做为主表,把全部数据取出来,再取出右侧与左侧有相同数据的行,将两个表取出的表进行交叉合并。

9dff64dabd3b63aabe15f890ff89b3a2.png

4、右联结(right join):将右侧全部数据取出来

右联结运行方式:将右侧的表做为主表,把全部数据取出来,再取出左侧与右侧有相同数据的行,将两个表取出的表进行交叉合并。

6f7fdfffd1661619f94dadef077c5546.png

5、全联结(full join):返回左侧和右侧的所有行,有相同的行时进行合并,没有某行相匹配时用空值填充。

三、联结应用案例

1、查询所有学生的学号、姓名、选课数、总成绩

d70dcc8253fa6b04bd8cae61e535a797.png

2、查询平均成绩大于85的所有学生的学号、姓名和平均成绩

f3308c8cf75ed856569eb19b18004a0d.png

3、查询学生的选课情况;学号、姓名、课程号、课程名称

338b2e7603cab8db691ac36a2460ba97.png

四、case表达式

case表达式解决复杂的查询问题,相当于进行一个条件判断的函数,用来判断某一行是否满足条件。

6e92277369a579f6dca8e38cf3078837.png

查询每位学生的成绩是否及格

15ecb7f8344c27a8de19b965bd12a18b.png

查询出每门课程的及格人数和不及格人数

c92eeb66dee04031061f73076dcab62d.png

使用分段[100-85],[85-70],[70-60],[<60]来统计各科成绩,分别统计:各分段人数、课程号和课程名称

1312684464b3949f206419ce5db295a0.png

注意事项

  • else子句可以省略不写,默认为nul。
  • end不能省略不写
  • case表达式可以写在SQL任意子句里面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值