欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

oracle的自连接、内连接、外连接、交叉连接、自然连接、等值连接、不等值连接

程序员文章站 2022-03-31 22:05:35
等值连接 :关联条件要写表名.字段名=表名.字段名 等值连接中可能有笛卡尔积运算自然连接 natural join:语句中没有on 并且自然连接的表里要有相同字段名 例: from M natural join N M表和N表要有相同的字段才可以(自然连接一定是等值连接,但是等值连接不一定是自然连接)自连接:同一张表的连接查询内连接:where 或者inner join外连接:left/right/full outer join交叉连接 cross join:语句中不能有on,返回到 结果集合中的数......

等值连接  :关联条件要写表名.字段名=表名.字段名   等值连接中可能有笛卡尔积运算
自然连接 natural join:语句中没有on 并且自然连接的表里要有相同字段名  例: from M natural join N M表和N表要有相同的字段才可以(自然连接一定是等值连接,但是等值连接不一定是自然连接)
自连接:同一张表的连接查询
内连接:where 或者inner join
外连接:left/right/full outer join
交叉连接 cross join:语句中不能有on,不需要连接的表中有同名的字段,也不需要字段值有相同值,返回到结果集合中的数据行数等于两个表行数相乘

 

例:

create table A(
 name varchar(10),
 age number
);

create table B(
 name varchar(10),
 money number
);

--内连接
select * from A inner join B on a.name=b.name;   --等值连接
select * from A,B where  a.name=b.name;    --等值连接
select * from A inner join B on a.name<>b.name;   --不等值连接
select * from A,B where  a.name<>b.name;   --不等值连接

--外连接
select * from A left join B on a.name=b.name;   --等值连接
select * from A left outer join B on a.name=b.name;   --等值连接
select * from A left join B on a.name<>b.name;   --不等值连接
select * from A left outer join B on a.name<>b.name;   --不等值连接

--自连接

select * from A m , A n  WHERE m.name=n.name;  --等值连接
select * from A m , A n  WHERE m.name<>n.name;  --不等值连接
select * from A m inner join A n  on m.name=n.name;  --  等值连接
select * from A m inner join A n  on m.name<>n.name;  -- 不等值连接

--自然连接
select * from A natural join B;  -- 等值连接
--交叉连接
select * from A cross join B ;

本文地址:https://blog.csdn.net/Demis_demis/article/details/107655342