5 union查询_sql之多表查询

1.表的加法

使用union将两张表的数据按行合并在一起

a34f95d005eff265f9c04f436ccda174.png

在union后面加上all就会把所有的数据合并在一起(包括重复值)

cb2601b550a720a6492afb15c61cd2d2.png

2.表连结

交叉连结(笛卡尔积):cross join

内连结:inner join(查找同时存在几张表的数据)

a0fe25738a1aa65be5417e52215dcffc.png

左连结:left join(将左侧表作为主表,主表中的数据全部读取出来)

aefab37292ef564cf190902950a4a725.png

去掉左连结里的公共部分

924d36193b38eb7714f23762d7899546.png

右连结:right join(将右侧表里的数据全部读取出来)

76bd86f9030ff414bd65c76c89307102.png

去掉右连结里的公共部分

df91249bacb185f3ac9055982a7e0e6b.png

全连结:返回两个表中的所有行,当某行和另一个表中有匹配时会合并,没有则空值

  • 查询所有学生的学号,姓名,选课数和总成绩

23b14417bb676aa36da9001a3bb650b2.png
  • 查询平均成绩>85的学生的学号,姓名,平均成绩

06430ab95f36e9a8375fa00c8ddc4c4c.png
  • 查询学生的选课情况

f4892eeadfd851f70a33d7f612184367.png

3.case表达式

case:查找到满足条件的数据之后跳出运行下面的语句,没查找到时会逐个运行完

8dd065b5945e43f62abf1ab1752dd7c2.png
  • 查找成绩及格和不及格的学生人数

9adc8fdca77703891a3dbc15f19c6c12.png
  • 查找各分数段成绩的学生个数

501b16c9a963b56556e6f8a18c92df50.png

case用于多种情况需要条件判断时,end必须写,case可以写在sql语句中的任意字句里

4.练习

6359835791264570b53d4fd345efbf6e.png

0459e0b26d888d73af5ed5aa86badac7.png

97087aed18c5889450313a3f5ddf59b4.png

多表查询时where语句中也要标明是哪个表的

f57d5d6387c5b0c568941e4c3c7f3982.png

f557d587a29fb659cf8db771d44d3017.png

分清不同的列名是属于哪个表的

aa653aaa7139a447fd981f73d6343321.png

72b3a83a47521b871bfa7fd8151d7234.png

f81da9e254c8b210cf4dbccdce877232.png

3a0f8047005387d8bd00ef005e3fc224.png

893e57d1bb29a4b0ee9761e4f8a58265.png

第十题使用左连结、右连结各写一次

c971d70ae71e0e69f0283bc7bf3ce3f9.png

c8611e976490f99181c8b184fd274476.png

aae3b2259a99127ec43b33f1b3cbc4d7.png

01da02c709544f13d82f3c33eedeb1c8.png

分清group by和order by之间的区别和联系

5.总结

  • 进行多表查询时要注意不同的表如何连结在一起
  • case语句中的括号不能落下
  • 看清不同表的列名

eb71c1e68ccbc7dd3b8cb8add6999c4b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值