【Oracle 数据库】奶妈式教程 day07 内连接

42 篇文章 8 订阅
30 篇文章 9 订阅

内连接

是把两个表中符合条件的数据连接为一条数据,如果哪个表中存在不符合连接条件的数据,那么这些数据就会被过滤掉(不显示)

语法:

select 列名,...,列名
from a表 inner join b表 on 连接条件;

举例:
查询员工信息及他的部门信息

select e.*,d.* from emp e inner join dept d on e.deptno=d.deptno;

inner join:中的inner可以省略不写

select e.*,d.* from emp e join dept d on e.deptno=d.deptno;

让我们回顾一下我们的原表:

 



 

从上图我们可以看出来,emp表中的empno为7311的员工并没有出现在内连接后的结果集里面。因为两张表的连接条件是emp表的deptno以及dept表中的deptno,而7311这为员工的deptno为null值,故而与dept表的deptno列中的值匹配不上,所以这条数据就被过滤掉了。同理,dept表中的40部门也没有再emp表中匹配到符合连接条件的数据,故而也被过滤掉了。

那么话说回来:什么是连接条件?
连接条件不一定是两张表中同名的字段,但必须是数据类型相同的字段。

举个列子如下:
emp表的empno字段和dept表中的deptno字段同属NUMBER类型,那么这两个字段就可以作为连接条件,只是没有数据可以匹配而已。


如果连接条件的两个字段类型不一致的话会怎样?


如上图所示,如果数据类型不一致的话,会直接报错。

内连接除了上面的写法之外还有另外一条特殊的写法:

SELECT * FROM EMP E,DEPT D WHERE E.DEPTNO = D.DEPTNO;



以上不管哪种语法,出来的结果都是一样的。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值