EMP表中员工与老板的关系
内连接:
内连接也叫自然连接,它是组合两个表的常用方法。自然连接将两个表中的列进行比较,将两个表中满足连接条件的行组合起来,作为结果。自然连接有两种形式的语法。
select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr=e2.empno;
select e1.ename,e1.mgr,e2.ename aa from emp e1 inner join
emp e2 on
e1.mgr=e2.empno;
--结果为:所有有上级的员工及对应上级姓名。
外连接:
在自然连接中,只有在两个表中匹配的行才能在结果集中出现。而在外连接中可以只限制一个表,而对另外一个表不加限制(即所有的行都出现在结果集中)。
外连接分为左外连接、右外连接和全外连接。左外连接是对连接条件中左边的表不加限制;右外连接是对右边的表不加限制;全外连接对两个表都不加限制,所有两个表中的行都会包括在结果集中。
左外连接的语法为:
SELECT 列 from 表1 LEFT [OUTER]JOIN 表2 ON 表1.列1=表2.列2
右外连接的语法为:
SELECT select_list from 表1 RIGHT[OUTER]JOIN 表2 ON 表1.列1=表2.列2
全外连接(完整外部联接)的语法为:
SELECT select_list from 表1 FULL[OUTER] JOIN 表2 ON 表1.列1=表2.列2
左外连接:
左外连接是对连接条件中左边的表不加限制
select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr=e2.empno(+)
;
select e1.ename,e1.mgr,e2.ename aa from emp e1 left
outer join
emp e2 on
e1.mgr=e2.empno;
--结果为:所有员工及对应上级姓名(包括没有上级的员工记录)。
右外连接:
右外连接是对右边的表不加限制
select e1.ename,e1.mgr,e2.ename aa from emp e1,emp e2 where e1.mgr(+)
=e2.empno;
select e1.ename,e1.mgr,e2.ename aa from emp e1 right outer join
emp e2 on
e1.mgr=e2.empno;
--结果为:所有员工及对应上级姓名,加上没有下级员工的上级记录。
全外连接:
全外连接对两个表都不加限制,所有两个表中的行都会包括在结果集中
*/
select e1.ename,e1.mgr,e2.ename aa from emp e1 full outer join
emp e2 on
e1.mgr=e2.empno;
--结果为:所有员工及对应上级姓名(包括没有上级的员工记录),加上没有下级员工的上级记录。
交叉联接:
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。
select e1.ename,e1.mgr,e2.ename aa from emp e1 cross join
emp e2;
select e1.ename,e1.mgr,e2.ename aa from emp e1 ,emp e2;
--结果为:两个表中所有员工交叉排列组成的笛卡尔集。
/*左外连接和右外连接的两种写法返回的结果相同,但排列的方式不同*/
相关文章
- SQL中内连接和外连接的区别
- 表的内连接、外连接、自连接、自然联接到底是什么?
- [Mysql基础] 表的内连接和外连接
- 后端-内连接(INNER JOIN),左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)的区别
- 【SQL】SQL中笛卡尔积、内连接、外连接的数据演示
- 多表查询,内连接,左外连接,右外连接,笛卡尔积,子查询的区别
- Oracle-26-内连接(等值、不等值连接、自然连接)&外连接(左外、右外、全连接)&using子句
- mysql数据库中内连接、外连接、左连接、右连接、全连接、自然连接区别
- 数据库-内连接,外连接:左连接(left join),右连接(right join),完全外连接(full join)
- oracle 内连接(inner join)、外连接(outer join)、全连接(full join)