mysql exercise three
大家可以采用SQLyog、Navicat 数据库可视化工具进行查看
用于以下试题使用的数据表地址:
mysql exercise three 数据库练习参考资源地址
#1. 查找部门30中员工的详细信息。
#select * from EMP where DEPTNO=30;
#2.找出从事clerk工作的员工的编号、姓名、部门号。
#select e.EMPNO
,e.ENAME
,e.DEPTNO
from EMP e where JOB=“CLERK”;
#3. 检索出奖金多于基本工资的员工信息。
#select * from EMP where SAL<COMM;
#4.检索出奖金多于基本工资60%的员工信息。
#select * from EMP where SAL*0.6<COMM;
#5.找出10部门的经理、20部门的职员的员工信息。
#SELECT * FROM EMP WHERE DEPTNO=10 and JOB=“MANAGER” or DEPTNO=20 and JOB=“CLERK”;
#6.找出10部门的经理、20部门的职员或者既不是经理也不是职员但是工资高于2000元的员工信息。
#SELECT * FROM EMP WHERE DEPTNO=10 and JOB=“MANAGER” or DEPTNO=20 and JOB=“CLERK” or JOB!=“MANAGER” and JOB!=“CLERK” and SAL>2000;
#7.找出获得奖金的员工的工作。
#select distinct JOB from EMP where comm>0;
#8.找出奖金少于100或者没有获得奖金的员工的信息。
#select * from EMP where COMM<100 or COMM is null;
#9.找出姓名以A、B、S开始的员工信息。
#select * from EMP where ENAME like “A%” or ENAME like “B%” or ENAME like “s%”;
#10.找到名字长度为6个字符的员工信息。
#select * from EMP where length(ENAME)=6;
#SELECT * FROM EMP WHERE ENAME like “______”;
#11.名字中不包含R字符的员工信息。
#SELECT * FROM EMP WHERE ENAME not like “%R%”;
#12.返回员工的详细信息并按姓名排序。
#SELECT * FROM EMP order by ENAME;
#13.返回员工的信息并按工作降序工资升序排列。
#SELECT * FROM EMP ORDER BY JOB desc,SAL;
#14.计算员工的日薪(按30天)。
#select ENAME
,SAL
/30 d from EMP;
#15. 找出姓名中包含A的员工信息。
#select * from EMP where ENAME like “%A%”;
#16.返回拥有员工的部门名、部门号。
#select distinct d.DNAME
,d.DEPTNO
from DEPT d,EMP e where d.DEPTNO
=e.DEPTNO
;
#17.工资水平多于smith的员工信息。
#select * from EMP where SAL>(select SAL from EMP where ENAME=“SMITH”);
#18.返回员工和所属经理的姓名。
#select a.ENAME
,b.ENAME
from EMP a left join EMP b on a.MGR
=b.EMPNO
;
#19.返回雇员的雇佣日期早于其经理雇佣日期的员工及其经理姓名
#1. select a.ENAME
,a.HIREDATE
,b.ENAME
,b.HIREDATE
from EMP a inner join EMP b on a.MGR
=b.EMPNO
where a.HIREDATE
<b.HIREDATE
;
#2. select a.ENAME
,a.HIREDATE
,b.ENAME
,b.HIREDATE
from EMP a,EMP b where a.MGR
=b.EMPNO
and a.HIREDATE
<b.HIREDATE
;
#20.返回员工姓名及其所在的部门名称。
#select e.ENAME
,d.DNAME
from EMP e,DEPT d where e.DEPTNO
=d.DEPTNO
;
#21. 返回从事clerk工作的员工姓名和所在部门名称。
#select e.ENAME
,d.DNAME
from EMP e,DEPT d where JOB=“CLERK” and e.DEPTNO
=d.DEPTNO
;
#22. 返回部门号及其本部门的最低工资。
#select DEPTNO,min(SAL) from EMP group by DEPTNO;
#23. 返回销售部(sales)所有员工的姓名。
#select ENAME from EMP where DEPTNO=(select DEPTNO from DEPT where DNAME=‘sales’);
#24.返回工资水平多于平均工资的员工。
#select * from EMP where SAL>(select avg(sal) from EMP);
#25. 返回与SCOTT从事相同工作的员工。
#select * from EMP where JOB=(select JOB from EMP where ENAME= ‘scott’);
#26.返回与30部门员工工资水平相同的员工姓名与工资。
#select ename,sal from EMP where SAL (SELECT SAL FROM EMP WHERE DEPTNO=30);
#27.返回工资高于30部门所有员工工资水平的员工信息。
#select * from EMP where SAL>all(SELECT SAL FROM EMP WHERE DEPTNO=30);
#28.返回部门号、部门名、部门所在位置及其每个部门的员工总数。
#select d.DEPTNO
,d.DNAME
,d.LOC
,count(e.DEPTNO
)a from DEPT d,EMP e where d.DEPTNO
=e.DEPTNO
;
#29. 返回员工的姓名、所在部门名及其工资。
#SELECT e.ENAME
,d.DNAME
,e.SAL
FROM DEPT d,EMP e WHERE d.DEPTNO
=e.DEPTNO
;
#30.返回员工的详细信息。(包括部门名)
#SELECT e.*,d.DNAME
FROM DEPT d,EMP e where d.DEPTNO
=e.DEPTNO
;
#31.返回员工工作及其从事此工作的最低工资。
#select JOB,min(SAL) from EMP group by JOB;
#32.计算出员工的年薪,并且以年薪排序
#select ENAME,SAL*12 yea from EMP;
#33.返回工资处于第四级别的员工的姓名。
#select ENAME,SAL from EMP e,SALGRADE s where s.GRADE
=4 and e.SAL
>=s.LOSAL
and e.SAL
<=s.HISAL
;
#select ENAME,SAL from EMP e,SALGRADE s where s.GRADE
=4 and e.SAL
BETWEEN s.LOSAL
AND s.HISAL
;
#34.返回工资为二等级的职员名字、部门所在地、和二等级的最低工资和最高工资
#select ENAME,DNAME,LOSAL,HISAL from EMP e,SALGRADE s,DEPT d where d.DEPTNO
=e.DEPTNO
and s.GRADE
=2 and e.SAL
>=s.LOSAL
and e.SAL
<=s.HISAL
;
#SELECT min(SAL),max(SAL) FROM EMP e,SALGRADE s,DEPT d WHERE d.DEPTNO
=e.DEPTNO
AND s.GRADE
=2 AND e.SAL
>=s.LOSAL
AND e.SAL
<=s.HISAL
;
#35.工资等级多于smith的员工信息。
#select e.*,s.GRADE
from EMP e,SALGRADE s where s.HISAL
<e.SAL
and
#s.GRADE
>(SELECT GRADE FROM SALGRADE,EMP WHERE LOSALSAL AND ENAME=“SMITH”);
SELECT * FROM EMP ,
(SELECT MAX(HISAL) A,MIN(LOSAL) B FROM SALGRADE WHERE LOSAL>(SELECT SAL FROM EMP WHERE ENAME=‘SMITH’)) AS C
WHERE SAL BETWEEN C.B AND C.A
在这里欢迎大家的点赞、关注、评论,以此来促进大家互相学习交流,同时可以让新加入的小伙伴更快的了解新知识!!!
以上内容如有侵权,请联系作者进行删除
≧◠◡◠≦ 1分2分都是爱,感谢已经打赏的老板,和正在打赏的老板们 ≧◠◡◠≦