-
每个员工的所有信息
select * from emp; -
每个人的部门编号,姓名,薪水
select empno,ename, job from emp; -
每个人的年薪
select ename, job, sal*12 年薪 from emp; -
求每个人的年薪,列的别名:“年薪”
select ename, job, sal*12 年薪 from emp;
–别名中(年薪)尽量不要出现特殊符号,例如空格。如果非要使用,必须用双引号括起来。 -
求 10 这个部门的所有员工
select * from emp where deptno=10; -
求名字是 KING 的这个人的信息
select * from emp where ename=‘KING’;
–字符串必须要加双引号,而且区分大小写 -
求薪水大于 2000 的员工信息
select * from emp where sal>=2000; -
求部门不是 10 的员工信息
select * from emp where deptno != 10; -
求薪水在 800 和 1500 之间的员工信息(包含 800 和 1500)
select * from emp where sal>=800 and sal<=1500;
或者
select * from emp where sal between 800 and 1500;
–包含边界 -
列出 deptno 为 10 或者 30,并且工资>2000 的所有人
select * from emp where deptno =10 or deptno =30 and sal >2000; -
利用 in 操作符,列出部门 10 和 20 的人员
select * from emp where deptno in (10,20); -
利用 like 操作符,查处名字中含有"H"的人员
select * from emp where ename like ‘%H%’;
–前后都未知,只要含有H -
分别利用 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’;
–转义字符可以任意设定 -
计算 emp 表中的所有人员的平均薪水
select avg(sal) from emp; -
计算 emp 表中最高薪水
select max(sal) from emp; -
计算 emp 表中最低薪水
select min(sal) from emp; -
计算 emp 表中薪水大于 1000 的人员的个数
select count(*) from emp where sal >1000; -
计算 emp 表中薪水的总和
select sum(sal) from emp; -
计算 emp 表中薪水和津贴的总和
select sum(sal) ,sum(comm),sum(sal)+sum(comm) from emp; -
求各部门最高薪水
select deptno,max(sal) from emp group by deptno ; -
按照部门和职位分组,分别求最高薪水,该组人员个数
select dname,job,max(sal),count(e.deptno) from emp e join dept d on e.deptno=d.deptno group by dname,job; -
求薪水最高的员工姓名
select ename ,sal from emp where sal =(select max(sal) from emp); -
求平均薪水是 2000 以上的部门
select deptno,avg(sal) from emp group by deptno having avg(sal)>2000; -
求每个部门的平均薪水,并按照薪水降序排列
select deptno,avg(sal) from emp group by deptno order by avg(sal) desc; -
求每个部门薪水在 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; -
把雇员按部门分组, 求最高薪水,部门号,过滤掉名字中第二个字母是’A’的, 要求分组后的平均薪水>1500, 按照部门编号倒序排列
select deptno,max(sal) from emp where ename not like ‘_A%’ group by deptno having avg(sal) >1500 order by deptno desc; -
求平均薪水最高的部门的部门编号
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)); -
求出 emp 表中哪些人是经理人,打印出名字和编号
select ename,mgr from emp where job=‘MANAGER’; -
求比普通员工的最高薪水还要高的经理人名称
select ename,sal from emp where job=‘MANAGER’ and sal>(select max(sal) from emp where job=‘CLERK’); -
每个部门平均薪水的等级(需要用到表的连接)
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; -
求部门经理人中平均薪水最低的部门名称
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; -
求薪水最高的前 5 名雇员
select * from (select rownum, e.* from emp e order by sal desc) where rownum<=5; -
求薪水最高的第 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;
MySQL语句
最新推荐文章于 2022-05-16 15:25:09 发布