数据库基本操作练习

--1、列出至少有一个员工的所有部门。

select distinct d.dname from emp e, dept d where e.deptno=d.deptno;

--2、列出薪金比“王涛”多的所有员工。

SELECT  sal  from emp where emp.ename="王涛";

SELECT * from emp where sal>(SELECT  sal  from emp where emp.ename="王涛");

--3、列出所有员工的姓名及其直接上级的姓名,如果当前员工没有直接领导,那么领导名称位置显示boss。

补充:列出每一个员工的工资及工资等级

select  a.ename 员工,ifnull(b.ename,"boss") 领导 from  emp a  left join emp b on  a.mgr=b.empno;

select e.ename,e.sal,sg.grade from emp e ,sal_grade sg where e.sal between sg.minsal and sg.maxsal;

--4、列出受雇日期早于其直接上级的所有员工。

select  distinct a.ename 员工,b.ename  领导 from  emp a  left join emp b on  a.mgr=b.empno where a.hiredate<b.hiredate;

--5、列出部门名称和这些部门的员工信息,包括那些没有员工的部门。

select d.dname ,e.*

from  dept d left join  emp e on d.deptno=e.deptno;

--、列出所有job为“CLERK”(办事员)的姓名及其部门名称。

select e.ename,d.dname from emp e join  dept d on e.deptno=d.deptno  where e.job="教学总监";

--7、列出最低薪金大于1500的各种工作。

select  distinct job from emp  where sal > 1500;

--8、列出在部门“教学部”工作的员工的姓名。

select e.ename from emp e join  dept d on e.deptno=d.deptno  where d.dname ="教学部";

--9、列出薪金高于公司平均薪金的所有员工。

select AVG(sal) from emp ;

select * from emp where sal >(select AVG(sal) from emp );

--10、列出与“刘枫”从事相同工作的所有员工。

select job from emp  where ename="刘峰";

select * from emp where job=(select job from emp  where ename="刘峰");

--列出所有员工的姓名及其直接上级的姓名,如果当前员工没有直接领导,那么领导名称位置显示boss。

 select e.ename  员工姓名, ifnull(m.ename,'boss') 领导姓名 from   emp e left  JOIN   emp  m  on e.mgr = m.empno

补充:列出每一个员工的工资及工资等级

select ename,sal ,grade from     emp INNER JOIN sal_grade  on emp.sal <= sal_grade.maxsal and emp.sal > sal_grade.minsal

--11、列出薪金等于部门10中员工的薪金的所有员工的姓名和薪金。

select sal from emp where deptno=10;

select ename ,sal from emp where  sal=5000||sal=7000||sal=20000||sal=1111||sal=12000;

--12、列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。

select sal from emp where deptno=20;

select ename ,sal from emp where sal>all (select sal from emp where deptno=20);

--13、列出在每个部门工作的员工数量、平均工资和平均服务期限。***********************************************

select  e.deptno ,count(e.deptno) 每个部门的员工数量 ,avg(sal) 平均工资 from emp e group by e.deptno;

--14、列出所有员工的姓名、部门名称和工资。

select e.ename,d.dname,e.sal from dept d left join emp e on d.deptno = e.deptno ;

--15、列出从事同一种工作但属于不同部门的员工的一种组合。

select DISTINCT * from emp a join emp b on  (a.job = b.job and a.deptno != b.deptno);

--16、列出所有部门的详细信息和部门人数。

select d.*,count(*) 部门人数 from emp e ,dept d where e.deptno = d.deptno GROUP BY e.deptno;

--17、列出各种工作的最低工资。

select  job ,min(sal) from emp group by job;

--18、列出各个部门的MANAGER(经理)的最低薪金(job为MANAGER)。

select  job ,min(sal) from emp where job="MANAGER" group by job ;

--19、列出所有员工的年工资,按年薪从低到高排序。   +++++*****************************

select ename , sal from emp  order by sal asc;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值