个人学习oracle数据库内连接和外连接心得
来源:互联网 发布:mac战网怎么切换大小写 编辑:程序博客网 时间:2024/05/21 06:13
小白一枚 ,第一次尝试写博客 不喜勿喷
等值连接:用代码来说就是用where 关键字连表,
内连接:用代码来说就是用join on ,
例如有emp dept两张表 字段如下:
等值连接sql语句:
select * from emp,dept where emp.deptno=dept.deptno
内连接sql语句:
select * from emp join dept on emp.deptno=dept.deptno
查询结果:
查询结果一模一样,由此可以看出内连接跟等值连接的作用是一样的。
注意:多表查询的性能是很差的,当然,性能差是有一个前提的:数据量大。
接下来是外连表 ,有三种方式(有A B两张表):
左连表查询:A left join B on 或者 A left outer join B on
右连表查询:A right join B on 或者 A right outer join B on
全连接:full join 等价于(full outer join)查询结果等于左外连接和右外连接的和
在这里我觉得有必要说明一下,因为我个人在学习外连接的方式的时候迷糊过,为什么左连表跟右连表查出来的是这样的呢?于是我自己琢磨了一下,得出下面的结论:
左连表是把左表为主表 右连表是把右表作为主表,下面我会用图告诉你们的区别
左连表sql语句(emp表,dept表):
select * from emp left join dept on emp.deptno =dept.deptno
右连表sql:
select * from emp right join dept on emp.deptno=dept.deptno
从图可以看出左连接跟右连接的区别,为什么左连接跟右连接不一样呢?
因为左连表的话 (select * from emp left join dept on emp.deptno =dept.deptno),
在这里emp表为主表 所以查出来的字段必须是跟emp表的字段对应,假如没有,就用null值补充,在
右连表这里就可以看得很清楚,(select * from emp right join dept on emp.deptno=dept.deptno)
右连表把dept表作为主表,emp表中没有一个人是deptno为40的 但是还是显示出来了,没有数据为null
全外连接sql:
select * from emp full join dept on emp.deptno=dept.deptno
在这里没有区别谁是主表 就是查左连表跟右连表的总和
- 个人学习oracle数据库内连接和外连接心得
- 数据库内连接和外连接
- 数据库内连接、外连接
- 数据库内连接、外连接、交叉连接
- 数据库内连接、外连接、交叉连接
- 数据库内连接、外连接、完全连接
- 数据库内、外连接总结
- 数据库内连接与外连接
- 数据库内连接与外连接
- 数据库内连接与外连接
- 数据库内连接与外连接
- 数据库内连接与外连接
- 数据库内连接与外连接
- 关于数据库内连接外连接左连接右连接
- 数据库内连接、外连接与交叉连接
- MySQL-数据库内连接与外连接与交叉连接
- MySQL数据库内连接外链接
- 数据库内连接、外连接(左连接、右连接、全连接)
- Spring-boot 微服务jar包方式启动,获取jar内资源文件到本地磁盘
- Laravel邮件、事件、队列浅谈
- 使用Unity 实现依赖注入
- 微信小程序 动画
- Android Service完全解析,关于服务你所需知道的一切(上)
- 个人学习oracle数据库内连接和外连接心得
- Inno Setup 编程技术全图文教程(转载)
- 摄影基础之【**相机画幅、人眼视角范围**】
- jsoup新闻爬虫
- centos6.8 mysql5.7 安装、配置、关闭密码策略、远程登录
- Expression Blend学习二UI布局
- windows服务器被黑记录
- Android Java Unicode转为汉字
- iOS开发之Documentation.build/Script-BC552B3A15.sh: