MySQL语句

  1. 每个员工的所有信息
    select * from emp;

  2. 每个人的部门编号,姓名,薪水
    select empno,ename, job from emp;

  3. 每个人的年薪
    select ename, job, sal*12 年薪 from emp;

  4. 求每个人的年薪,列的别名:“年薪”
    select ename, job, sal*12 年薪 from emp;
    –别名中(年薪)尽量不要出现特殊符号,例如空格。如果非要使用,必须用双引号括起来。

  5. 求 10 这个部门的所有员工
    select * from emp where deptno=10;

  6. 求名字是 KING 的这个人的信息
    select * from emp where ename=‘KING’;
    –字符串必须要加双引号,而且区分大小写

  7. 求薪水大于 2000 的员工信息
    select * from emp where sal>=2000;

  8. 求部门不是 10 的员工信息
    select * from emp where deptno != 10;

  9. 求薪水在 800 和 1500 之间的员工信息(包含 800 和 1500)
    select * from emp where sal>=800 and sal<=1500;
    或者
    select * from emp where sal between 800 and 1500;
    –包含边界

  10. 列出 deptno 为 10 或者 30,并且工资>2000 的所有人
    select * from emp where deptno =10 or deptno =30 and sal >2000;

  11. 利用 in 操作符,列出部门 10 和 20 的人员
    select * from emp where deptno in (10,20);

  12. 利用 like 操作符,查处名字中含有"H"的人员
    select * from emp where ename like ‘%H%’;
    –前后都未知,只要含有H

  13. 分别利用 like 操作符和正则表达式,查处名字中含有"S"或者"M"的人员
    操作符:
    select * from emp where ename like ‘%S%’ or ename like ‘%M%’;
    正则表达式:
    select * from emp where ename like ‘%aS%’ or ename like ‘%aM%’ escape ‘a’;
    –转义字符可以任意设定

  14. 计算 emp 表中的所有人员的平均薪水
    select avg(sal) from emp;

  15. 计算 emp 表中最高薪水
    select max(sal) from emp;

  16. 计算 emp 表中最低薪水
    select min(sal) from emp;

  17. 计算 emp 表中薪水大于 1000 的人员的个数
    select count(*) from emp where sal >1000;

  18. 计算 emp 表中薪水的总和
    select sum(sal) from emp;

  19. 计算 emp 表中薪水和津贴的总和
    select sum(sal) ,sum(comm),sum(sal)+sum(comm) from emp;

  20. 求各部门最高薪水
    select deptno,max(sal) from emp group by deptno ;

  21. 按照部门和职位分组,分别求最高薪水,该组人员个数
    select dname,job,max(sal),count(e.deptno) from emp e join dept d on e.deptno=d.deptno group by dname,job;

  22. 求薪水最高的员工姓名
    select ename ,sal from emp where sal =(select max(sal) from emp);

  23. 求平均薪水是 2000 以上的部门
    select deptno,avg(sal) from emp group by deptno having avg(sal)>2000;

  24. 求每个部门的平均薪水,并按照薪水降序排列
    select deptno,avg(sal) from emp group by deptno order by avg(sal) desc;

  25. 求每个部门薪水在 1200 以上的雇员的平均薪水、最高薪水,并且分组结果中只包含平均薪水大于 1500 的部门,排序按照部门平均薪水倒序排列
    select deptno,max(sal),avg(sal) from emp where deptno in (select deptno from emp group by deptno having avg(sal) >1500)and sal >1200 group by deptno order by avg(sal) desc;

  26. 把雇员按部门分组, 求最高薪水,部门号,过滤掉名字中第二个字母是’A’的, 要求分组后的平均薪水>1500, 按照部门编号倒序排列
    select deptno,max(sal) from emp where ename not like ‘_A%’ group by deptno having avg(sal) >1500 order by deptno desc;

  27. 求平均薪水最高的部门的部门编号
    select deptno,avg(sal) from emp group by deptno having avg(sal) = (select max(sal) from (select avg(sal) sal from emp group by deptno));

  28. 求出 emp 表中哪些人是经理人,打印出名字和编号
    select ename,mgr from emp where job=‘MANAGER’;

  29. 求比普通员工的最高薪水还要高的经理人名称
    select ename,sal from emp where job=‘MANAGER’ and sal>(select max(sal) from emp where job=‘CLERK’);

  30. 每个部门平均薪水的等级(需要用到表的连接)
    select a.deptno ,a.asal,grade from(select deptno,avg(sal) asal from emp group by deptno) a join salgrade on a.asal between losal and hisal;

  31. 求部门经理人中平均薪水最低的部门名称
    select deptno, d.dname from (select deptno, avg(sal) from emp where job=‘MANAGER’ group by deptno order by avg(sal)) natural join dept d where rownum=1;

  32. 求薪水最高的前 5 名雇员
    select * from (select rownum, e.* from emp e order by sal desc) where rownum<=5;

  33. 求薪水最高的第 6 到第 10 名雇员
    select * from (select rownum rn, t.* from (select * from emp order by sal desc) t where rownum<=10) tt where tt.rn>5;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值