mysql篇(不定期更新)

一:mysql三种链接方式:内链接、左外链接、右外链接。

不知道这种图怎么画,直接找了网上的资料,图片来自此链接。https://www.cnblogs.com/yscec/p/11911075.html

inner join:取用的就是图中红色部分,即表a与表b的交集,其余的都会被舍弃。
在这里插入图片描述
left join:左外链接,取用的是上图中a的部分,a有的b没有,则对应的字段为null;a没有的但是b有,也会被舍弃。
right join:右外链接,取用的是上图中b的部分。b有的数据对应到a里面没有,对应的a表的字段为null;b没有的数据但是a有,也会被舍弃。

举个例子

课程表c,学生表s,学生课程成绩表grade。
在这里插入图片描述
1:select * from grade inner join c on grade.cId=c.id;
这样得到的结果有6条
分别是
id cid sid score course teacher
1 1 1 90 语文 张三
2 1 3 80 语文 张三
3 1 4 100 语文 张三
4 2 2 99 语文 李四
5 3 5 70 英语 王五
6 5 1 100 计算机 王八

2:左链接的情况
select * from grade left join c on grade.cid = c.id;
这样得到的结果有7条
分别是
id cid sid score course teacher
1 1 1 90 语文 张三
2 1 3 80 语文 张三
3 1 4 100 语文 张三
4 2 2 99 语文 李四
5 3 5 70 英语 王五
6 5 1 100 计算机 王八
7 6 6 99 null null

3:右外链接的情况
select * from grade right join c on grade.cid = c.id;
这样得到的结果有7条
分别是
id course teacher sid score
1 语文 张三 1 90
1 语文 张三 3 80
1 语文 张三 4 100
2 语文 李四 2 99
3 英语 王五 5 70
4 数学 赵七 null null
5 计算机 王八 1 100

tips:已哪个为基准,就看sql语句,按照提到的表的顺序依次画2个集合,然后再看是内链接还是左/右外链接来取集。

练习题:https://wenku.baidu.com/view/7e0dd29b05a1b0717fd5360cba1aa81145318f16

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值