一、等值连接:
–1.同名字段需要加别名,定义了别名,不能再使用表名
select d.deptno,dname,loc,ename,sal,job
from dept d,emp e
where d.deptno = e.deptno;
–2.建议字段都使用别名前缀,效率高
select d.deptno,dname,loc,e.ename,sal,job
from dept d,emp e
where d.deptno = e.deptno and e.sal>2000;
二、非等值连接(很少用)
–1.查询员工的工资等级
select empno,ename,sal,grade,losal,hisal
from emp e,salgrade s
where e.sal>s.losal and e.sal<s.hisal
order by grade desc;
**小问题:为什么命名为等值连接和非等值连接?
小答应:等值连接的条件语句中存在等号;
非等值连接的条件语句中不存在等号。**
三、外连接:除了显示匹配的数据,还可以显示某个表不匹配的数据;
(等值连接 是一种内连接,只显示匹配的数据,导致没有员工的部门或者没有部门的员工都不显示。)
外连接分为左外连接和右外连接:
(+)在左边称为右外连接,这种情况往往意味着补充左边表格里的内容,而右边的表是主表;
(+)在右边称为左外连接,这种情况意味着要补充右边表格里的内容,而左边的表是主表;
--左外连接
SQL> select e.ename , e.empno, m.ename from emp e, emp m where e.mgr = m.empno(+);