SQL学习笔记--多表查询

温故而知新。
多表查询(内连接、外连接和交叉连接)
1)左外连:
sql:select * from table1 left join table2 on table1.条件列名=table2.条件列名
*注:table1表信息全部显示,符合条件的 table2 都会与 table1 对齐,不符合条件的 table2 不会显示,没有数据的用null自动填充。
2)右外连:
sql:select * from table1 right join table2 on table1.条件列名=table2.条件列名
注:与左外连基本相同,对齐的表为 table2。
3)完全外部连接:
sql:select * from table1 full join table2 on table1.条件列名=table2.条件列名
*注:根据限制条件,显示出所有符合条件的列,当某一个表中没有匹配的行时,则另一个表的列包含空值,如果有,就显示出所有信息。
4)内连接:
sql:select * from table1 join table2 on table1.条件列名=table2.条件列名
<=> select t1.* ,t2.* from table1 t1,table2 t2 where t1.条件列名=t2.条件列名
<=> select * from table1 cross join table2 where table1.条件列名=table2.条件列名( cross join 后面不能够用 on , 只能用 where )
5)交叉连接(完全)
sql:select * from table1 cross join table2;
<=> select * from table1,table2;
注:笛卡尔积。。。。。明白就好。。。。。
*6)join 与 outer join
join:
保留所有符合 on 条件的行,查询结果行数量不会大于被 join 的表;
outer join:
保留 join 的结果,并根据 left、right 和 full 保留其中一个表内的不符合 on 条件的结果航,这种结果行仅有一个表内的结果,另一半用 null 填充。
注:6)是借鉴的别人的回答,但是不是特别的明朗,在自己测试的时候确实没看出太大差别(emp 与 dept),给自己挖个坑,回头再填上;

*注:其实连接语句,个人认为就是看需求,然后在进行对应的操作,操作两遍之后比较容易理解,但是感觉用好比较难,如果碰到比较复杂的例子可能就有些难以处理。先总结一些简单的,有难的例子在攻破。左右外连才是最常用的吧,然后内连感觉也差不蛮多。还是要碰到问题才能更深入的理解,先写下吧。

注释:*为不确定自我见解,有错误请毫不留情直接指出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值