宝安22班-叶柏轩 发表于 2022-3-15 14:00:58

2022-3-14 单多表题目-叶柏轩

单表题目:
1、查找部门30中员工的详细信息。
select *
from EMP as e
where e.deptno=30;

2、找出从事职员工作的员工的编号、姓名、部门号。(clerk职员,办事员)
select e.empno,e.ename,e.deptno
from EMP as e
where e.job='职员';

3、检索出奖金多于基本工资的员工信息。
select *
from EMP as e
where e.comm > e.sal;

4、检索出奖金多于基本工资60%的员工信息。
select *
from EMP e
where e.comm > (e.sal % 60);

5、找出10部门的经理、20部门的职员 的员工信息。(manager经理;管理
select *
from EMP e
where (e.deptno=10 and e.job='经理')
or (e.job='职员'and e.deptno=20) ;

6、找出10部门的经理、20部门的职员 或者既不是经理也不是职员但是工资高于2000元的员工信息。(sal 工资)
select *
from EMP e
where e.job!='经理'
and e.job!='职员'
and e.sal>2000;

7、找出获得奖金的员工的工作。(comm奖金)
select distinct(e.job),e.job
from EMP e
where e.comm
is not null;

8、找出奖金少于100或者没有获得奖金的员工的信息。
select *
from EMP e
where e.comm
is null or e.comm<100;

9、找出姓名以A、B、S开始的员工信息.
select *
from EMP e
where e.ename
like'A%' or e.ename like'B%' or e.ename like'S%';

10、找到名字长度为6个字符的员工信息。
select *
from EMP e
where length(e.ename)=6;
11、名字中不包含R字符的员工信息。
select *
from EMP e
where e.ename
not like '%R%';

12、查找员工的详细信息并按姓名排序。
select *
from EMP e
order by e.ename asc;

13、返回员工的信息并按工作降序工资升序排列。(升序的规则)
select *
from EMP e
order by e.job or e.sal desc;

14、计算员工的日薪(按30天)。
select ((e.sal)/30),e.job
from EMP e
group by e.ename;

15、找出姓名中包含A的员工信息。
select *
from EMP e
where e.ename
like '%A%';

多表题目
多表查询答案
1、返回拥有员工的部门名、部门号。
select d.dname,d.deptno
from DEPT as d
left join EMP as e
on d.deptno = e.deptno
where e.deptno is not null;
2、工资水平多于smith的员工信息。
select *
from DEPT as d
left join EMP as e
on d.deptno = e.deptno
where e.sal>(select e.sal from EMP e where e.ename='smith');

3、返回员工和所属经理的姓名。
select e1.empno,e1.ename,e2.ename leader
from EMPe1
left join EMPe2
on e1.deptno = e2.deptno
where (e1.job='职员' or e1.job='销售员') and (e2.job='经理');

4、返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名。
select a.ename,b.ename
from (select e.empno,e.ename,e.mgr,e.hiredate
from EMP e
where e.job='职员'
or e.job='销售员') a
left join (select e.empno,e.ename,e.mgr,e.hiredate
from EMP e
where e.job='经理') b
on a.mgr = b.empno
where a.hiredate>b.hiredate;

5、返回员工姓名及其所在的部门名称。
select e.ename,d.dname
from EMP e
left join DEPT d
on e.deptno=d.deptno;

6、返回从事clerk工作的员工姓名和所在部门名称。(CLERK销售
select e.ename,d.dname
from EMP e
left join DEPT d
on e.deptno=d.deptno
where e.job='销售员';

7、返回部门号及其本部门的最低工资。
select min(e.sal) '最低工资',d.deptno,d.dname
from EMP e
left join DEPT d
on e.deptno=d.deptno

8、返回销售部(sales)所有员工的姓名。
select e.ename
from EMP e
left join DEPT d
on e.deptno=d.deptno
where d.dname='sales';
9、返回工资水平多于平均工资的员工。
select distinct(e2.ename)
from EMP e1
left join EMP e2
on e1.deptno=e2.deptno
where e2.sal > (select avg(e1.sal) from EMP e1);

10、返回与SCOTT从事相同工作的员工。(职员)
select e.ename
from EMP e
where e.job='职员'
and e.ename!='scott';

11、返回与30部门员工工资水平相同的员工姓名与工资。
select e.ename
from EMP e
where (select max(e.sal) from EMP e where e.deptno=30) >e.sal and e.sal>(select min(e.sal) from EMP e where e.deptno=30)

12、返回工资高于30部门所有员工工资水平的员工信息。
select e.ename
from EMP e
where e.sal > (select max(e.sal) from EMP e where e.deptno=30)

13、返回部门号、部门名、部门所在位置及其每个部门的工员总数。
select count(e.ename),d.loc,d.deptno,d.dname
from EMP e
left join DEPT d
on e.deptno=d.deptno
group by d.deptno

14、返回员工的姓名、所在部门名及其工资。
select e.ename,d.dname,e.sal
from EMP e
left join DEPT d
on e.deptno=d.deptno

15、返回员工的详细信息。(包括部门名)
select *
from EMP e
left join DEPT d
on e.deptno=d.deptno

16、返回员工工作及其从事此工作的最低工资。
select min(e.sal),e.job
from EMP e

17、计算出员工的年薪,并且以年薪排序。
select e.ename,e.sal*12 as ysal
from EMP e
order by ysal;

18、返回工资处于第四级别的员工的姓名。
select e.ename,e.sal
from EMP e,SALGRADE s
where e.sal<=3000 and e.sal>=2001 and s.grade=4;

19、返回工资为二等级的职员名字、部门所在地、和二等级的最低工资和最高工资
select e.ename,d.loc,s.losal,s.hisal
from EMP e,DEPT d,SALGRADE s
where s.grade=2 and e.sal<=1500 and e.sal>=1001

20.工资等级多于smith的员工信息。
select e.ename
from SALGRADE s,EMP e
where losal<=(select e.sal from EMP e where e.ename='smith')
and hisal>=(select e.sal from EMP e where e.ename='smith');


页: [1]
查看完整版本: 2022-3-14 单多表题目-叶柏轩