什么是连接?连接是在多个表之间通过一定得连接条件,使表之间发生关联,进而能从多个表之间获取数据。
连接的类型
按连接条件分:等值连接、非等值连接
按其他连接方法分:外部连接、内部连接
1.1等值连接
1.2非等值连接
查询每个员工的姓名,工资,公司等级
2.1外部连接
包括左外连接和右外连接
多表连接时,可以使用外部连接来查看哪些行,按照连接条件没有被匹配上。例如查询没有雇员工作的部门
外连接符号是(+)
语法包括:
select table1.column,table2.column
from table1,table2
where table1.column(+)=table2.column
select table1.column,table2.column
from table1,table2
where table1.column=table2.column(+)
外部连接好像是为符号(+)所在的边添加一个“万能”的行,这个行由空值组成。它可以和另一边的表中所有不满足连接条件的行进行连接。由于这个“万能”的行各列全部是空值,因此在连接结果中,“万能”行属性值全部为空。
示例:查询所有雇员姓名,部门编号,部门名称,包括没有员工的部门也要显示出来
select e.ename,d.deptno,d.dname
from emp e,dept d
where e.deptno(+)=d.deptno
order by e.deptno
2.2自身连接
就是自己和自己连接
示例:找出自己的领导
select worker.ename || 'leader is' || maneger.ename
from emp worker,emp maneger
where worker.mgr=maneger.empno