前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle函数学习(多表联合查询)

Oracle函数学习(多表联合查询)

作者头像
葆宁
发布2019-04-19 10:29:04
1K0
发布2019-04-19 10:29:04
举报
文章被收录于专栏:FREE SOLOFREE SOLO

多表联合查询:

–当需要获取的数据分布在多张中,考虑使用联合查询 –SQL92方式 –SQL99方式

–SQL99多表查询 –注意1:依然可以给表添加别名 –注意2:如果使用on或者usering关键对结果进行筛选,必须使用inner join作用表与表的连接,其中inner可以省略 –注意3:外连接的 outer关键字可以省略不写 –注意4:依然可以继续使用分组,having ,排序等 –笛卡尔积:使用cross join 关键字 —select 内容 from 表名 cross join select * from emp cross join dept –筛选 –查询员工姓名,工作,薪资,部门名称 –自然连接:使用关键字 natural join –使用:select 内容 from 表名 natural join 表名 –特点1:底层先笛卡尔积,然后按照所有的同名同值字段自动进行等值筛选。 –问题1:如果只想按照部分字段结果筛选怎么办? –问题2:如果想按照字段名不同,但是值相同进行等值筛选怎么办? select * from emp natural join dept –解决1:使用using关键字 –作用1:指明使用指定的字段对联合查询的结果进行等值筛选 –注意:指明的字段必须是两表的同名同值字段 –使用:select 内容 from 表名 inner join 表名 using(字段名,字段名,…) select * from emp inner join dept using(deptno) –解决2:使用on关键字进行自定义连接条件筛选(等值筛选,不等值筛选) –注意:普通筛选条件使用where进行筛选,不要使用on进行。好处:SQL语句的阅读性变强。 –使用:select 内容 from 表名 inner join 表名 on 连接条件 where 普通筛选条件 select * from emp inner join dept on emp.deptno=dept.deptno where sal>2000 –外连接: –左外连接:select 内容 from 表名 left outer join 表名 on 连接条件 –查询员工姓名,工作,薪资,部门名称及没有部门的员工信息 select * from emp e left outer join dept d on e.deptno=d.deptno –右外连接:select 内容 from 表名 right outer join 表名 on 连接条件 –查询员工姓名,工作,薪资,部门名称及没有员工的部门信息 select * from emp e right outer join dept d on e.deptno=d.deptno –全外连接:select 内容 from 表名 full outer join 表名 on 连接条件 select * from emp e full outer join dept d on e.deptno=d.deptno –自连接: –查询员工及其上级领导姓名 select e1.*,e2.ename from emp e1 inner join emp e2 on e1.mgr=e2.empno

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年03月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 多表联合查询:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档