Oracle查询语句

  1. 列出所有部门的详细信息和部门人数。
    这里需要部门的详细信息和部门人数,显然需要我们进行表的连接
    那么这里我们先贴出两张表长啥样
    emp:
    这里写图片描述
    dept:
    这里写图片描述
    像这样的关于两张表的连接,那么我们一般先一张一张来
    比如这里我们可以先解决部门的详细信息
select * from dept

这里写图片描述
然后解决部门人数

select deptno,count(1) 人数 from emp group by deptno;

这里写图片描述
那么接下来我们的任务就是将这两张表合成一张表,相当于进行表的连接,

select dept.* ,t1.rs from dept,(
select deptno,count(1) rs from emp group by deptno) t1
where dept.deptno=t1.deptno

对于第二张我们只需要取出人数就行了
这里写图片描述

  1. 列出从事同一种工作但属于不同部门的员工的不同组合。
select * from emp emp1 ,emp emp2
where emp1.job=emp2.job and emp1.deptno!=emp2.deptno and emp1.empno!=emp2.empno

这里写图片描述
像这种涉及到表的自身连接的问题,一般都需要对同一张表进行重命名,不然找不到比较的对象

posted @ 2017-07-30 22:22  crr121  阅读(113)  评论(0编辑  收藏  举报