1.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门 select deptname, empname, empno, emp.deptno from dept left join emp on emp.deptno=dept.deptno; 2.列出薪资比关羽高的所有员工.
1).查询出关羽的薪资 select sal from emp where empname='关羽'
2).查询出比关羽薪资高的员工 select empno,empname,sal from emp where sal>( SELECT sal from emp where empname='关羽'); 3.列出所有员工的姓名及其直接上级的姓名
1).查询员工 select empno,mgr from emp e1;
2).查询员工的上级 select empno,empname from emp e2;
3).关联查询,查询出员工及员工对应的上级 select e1.empname,e2.empname from emp e1,emp e2 where e1.mgr = e2.empno; 4.列出最低薪资大于1500的各种职位及其从事此职位的员工人数
1).查询出各种职位的最低薪资 select job, min(sal) 最低薪资 from emp group by job having min(sal);
2).查询出最低薪资>1500的职位 select job, min(sal) 最低薪资 from emp group by job having min(sal)>1500;
3).查询出每个职位对应的员工人数 select job, min(sal) 最低薪资, count(*) 员工人数 from emp group by job having min(sal)>1500; 5.列出在销售部职位的员工姓名,假定不知道销售部的部门编号
1).查询出销售部的部门编号 select deptno from dept where deptname='销售部';
2).查询出在销售部职位的员工姓名 select empname from emp where deptno=(select deptno from dept where deptname='销售部'); 6.列出与曹操从事相同职位的所有员工及部门名称
1).查询出曹操从事的职位及部门编号 select job,deptno from emp where empname='曹操';
2).查询出与曹操从事相同职位的所有员工 select empname,deptno from emp where job=(select job from emp where empname='曹操');
3).查询出与曹操从事相同职位的所有员工及部门名称 select deptname,empname from dept,(select empname,deptno from emp where job=(select job from emp where empname='曹操'))e2 where dept.deptno=e2.deptno; 7.列出薪资高于销售部(已知编号为30)就职的所有员工的薪资的员工姓名和薪资,部门名称
1).查出在销售部就职的所有员工最高薪资 select max(sal) from emp where deptno=30;
2).关联查询, 查询员工的姓名,薪资, 部门名称 select e.empname,e.sal,d.deptname from emp e,dept d where e.deptno=d.deptno and sal>(select max(sal) from emp where deptno=30); 8.列出在每个部门职位的员工数量、平均工资。 select count(*),avg(sal) from emp group by deptno; 9.查出至少有一个员工的部门。显示部门人数、部门编号、部门名称、部门位置.
1).查询出每个部门员工数量 select count(*),deptno from emp group by deptno;
2).关联查询,查询出部门编号、部门名称、部门位置 select i.c,d.deptname,d.loc,d.deptno from dept d,(select count(*) c,deptno from emp group by deptno)i where i.deptno=d.deptno and i.c>=1; 10.列出受雇日期早于直接上级的所有员工的编号,姓名,部门名称 select e1.empname, e1.empno, d.deptname from emp e1, emp e2, dept d where e1.deptno=d.deptno and e1.mgr=e2.empno and e1.hiredate < e2.hiredate;
11.列出所有职员的姓名及其部门名称,部门的人数。 select t.empname, t.deptname, e.cnt 员工数量 from
(
select e.empname, e.deptno, d.deptname from emp e, dept d where e.deptno=d.deptno
) t, (
select deptno, count(*) cnt from emp group by deptno
) e
where t.deptno = e.deptno;