前言:
当前看官们对“oracle自连接查询”大体比较珍视,朋友们都想要剖析一些“oracle自连接查询”的相关文章。那么小编同时在网上搜集了一些关于“oracle自连接查询””的相关知识,希望我们能喜欢,我们一起来学习一下吧!本节讨论关联查询和子查询的内容,Oracle子查询就是嵌套查询,select 查询的结果作为另外一个select、update或delete语句的条件,可以分为单行子查询和多行子查询。
Oracle子查询
select 列名 from 表名 where 表名.列名1 in (select 表名1.列名1 from 表名1 where 表名1.列名2 = 值1);内层select的查询结果作为外层select的条件,返回一条或者多条查询结果用in关键字表示外层条件值在in后的备选条件中
此外,ANY和ALL值和关系运算符接收子查询的多行结果
select t.列名 from 表名 t where t.列名1>any(值1,值2,值3......);
select t.列名 from 表名 t where t.列名2>all(值1,值2,值3......);ANY关键字:表示子查询结果当中的任意一个,即任意一个条件成立ALL关键字:表示子查询中的所有结果。本例中比all中的最大值还大关联查询
Oracle连接查询,包含内关联和外关联。外关联包括:左外关联、右外关联和全外关联。
内连接
select * from 表名1 a, 表名2 b where a.列名 = b.列名;连接条件中使用等于号(=)运算符比较被连接列的列值,查询结果中列出被连接的所有列除等于运算符(=)以外,其它比较运算符可用于内连接
外连接
select * from 表名 a left join 表名1 b on a.列1 = b.列1;左连接(left join)中左表记录不变,把右表与左表联结字段相等的记录挂在左表上,没挂上的部分为null
select * from 表名1 a right join 表名2 b on a.列1 = b.列1;--右连接(利用(+)在左边)另外一种写法select * from 表名1 a,表名2 b where a.列1(+)=b.列1;右联接(right join)中右表记录不变,把左表联结字段相等的记录挂在右表上,没挂上的部分为null右联结(+)的另一种写法
select * from 表名1 a full join 表名2 b on a.列1 = b.列1;全连接(full join)中左右记录不变,左表无右表部分相关字段为null,右表无左表部分相关字段为null
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #oracle自连接查询