多表连接查询
内连接(inner join)
目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来。
等值连接(join...on(...=...))
--选出雇员的名字和雇员所在的部门名字
--(1)必须明确的指出重复字段属于哪个表
select ename,dname dept.deptno from emp,dept where emp.deptno = dept.deptno;
--(2)新语法:join...on(...=...)
select ename, dname from emp join dept on ( emp.deptno = dept.deptno);
非等值连接(join...on(...>...))
--求每个人的薪水值,名字和他的薪水处于第几个级别
--(1)不使用连接查询
select ename, sal, grade from emp, salgrade where sal between losal and hisal;
--或者
select ename, sal, grade from emp, salgrade where sal >= losal and sal <= hisal;
--(2)新语法:join...on(...between...and...)
select ename, grade from emp e join salgrade s on (e.sal between s.losal and s.hisal);
--(3)三表连接:取出雇员名字,他的部门名称,和薪水等级其中名字第二个字母包含A的不要取出
select ename, dn