范例:使用别名;
select * from emp e,dept d where e.deptno = d.deptno; |
范例:要求查询出每个雇员的编号、姓名、职位、工资、部门名称、部分位置
|- 确定使用的数据表:
- emp表:雇员的编号,姓名,职位,工资
- dept表:部门名称,部门位置
|- 确立已知的关联条件
- 雇员和部门:emp.deptno = dept.deptno;
select empno,ename,job,sal,dname,loc from emp e,dept d where e.deptno = d.deptno; |
范例:查询出每个雇员的编号、姓名、工资、职位、雇用日期、工资等级
|- 确定使用的数据表:
- emp表:雇员的编号,姓名,工资,职位,雇佣日期
- salgrade表:工资等级
|- 确立已知的关联条件:
雇员与工资等级:emp.sal between salgrade.losal and salgrade.hisal;
select empno,ename,job,sal,hiredate,grade from emp e,salgrade s where e.sal between s.losal and s.hisal; |
范例:查询每一个雇员的编号、姓名、职位、雇用日期、工资、工资等级、所在部门及位置
|- 确定要使用的数据表:
- emp表:雇员的编号,姓名,职位,雇佣日期,工资
- salgrade表:工资等级
- dept表:部门名称及位置
|- 确立已知的关联条件:只要是消除笛卡尔积的条件之间都是用AND连接操作
- 雇员和工资等级:emp.sal between salgrade.losal and salgrade.hisal;
- 雇员和部门:emp.deptno = dept.deptno;
select empno,ename,job,hiredate,sal,grade,dname,loc from emp e,dept d,salgrade s where e.sal between s.losal and s.hisal and e.deptno = d.deptno; |
右外连接
select * from emp e,dept d where e.deptno(+)=d.deptno; --右外连接加号在左边 |
左外连接
select * from emp e,dept d where e.deptno=d.deptno(+); --左外连接加号在右边 |
范例:查询每个雇员的编号、姓名、职位、领导姓名
- 查询emp表
- 查询领导姓名
- 查询领导姓名è内连接,等值连接,有null的不显示
select e.empno,e.ename,e.job,m.ename from emp e,emp m where e.mgr=m.empno(+); --此处需要注意的是因为是用的同一个表格,所以必须加.区分表格e和表格m |
4、
select * from emp cross join dept; --产生笛卡尔积 15*5 |
select * from emp natural join dept; --自然连接,消除笛卡尔积 |
select * from emp join dept using(deptno); --用户指定关联字段 |
select * from emp e join dept d on(e.deptno=d.deptno); --使用on子句,用户设置关联条件 |
5、
外连接
select * from emp e left outer join dept d on(e.deptno=d.deptno); --左外连接 |
select * from emp e right outer join dept d on(e.deptno=d.deptno); --右外连接 |
select * from emp e full outer join dept d on(e.deptno=d.deptno); --全外连接 |
6、
select * from emp where empno=10 union select * from emp; ---union操作,不显示重复记录 |
select * from emp where deptno=10 union all select * from emp; --union all显示重复记录 |
select * from emp where deptno=10 intersect select * from emp; --intersect表示交集操作 |
select * from emp minus select * from emp where deptno=10; --minus表示差集操作 |
标签:多表,--,查询,dept,emp,oracle,deptno,where,select From: https://blog.51cto.com/u_15890333/5884422