一、多表连接
N个表查询中要连接起来,要写N-1个连接条件。
1.等值连接
找到表与表之间有关系的列名进行连接 用等号“=”
如有员工表emp,部门表dept,查找员工编号,姓名,部门编号,部门地点
SQL> SELECT emp.empno, emp.ename, emp.deptno, dept.deptno, dept.loc
FROM emp, dept
WHERE emp.deptno=dept.deptno and emp.deptno='10';
使用and查询能增加其他查询条件,且有前缀名的能提高查找效率。
where 子句是从右到左执行,所以等值连接语句写在左边,其他条件写在靠右边能提高where语句执行效率
2.非等值连接
一个表是按照某一列分等级的,另一个要被查询的表找到相关的所在列进行非等值连接,
一般where子句中用between 左区间 and 右区间 或者in(左区间,右区间)写判断条件。
如员工表emp中工资sal ,另一个工资等级表salgrade表
salgrade表有grade(等级),losal(左区间),hisal(右区间)
SQL> SELECT e.ename, e.sal, s.grade
FROM emp e, salgrade s
WHERE e.sal