MySQL 作业 | 青训营笔记

127 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第13天

查看 dept 表,和 emp 表的结构的 sql 语句 desc dept

desc emp

使用简单的查询语句完成

显示所有部门名称

select dname from dept

显示所有雇员名及其全年收入 13 月(工资+补助),并指定列名"年收入"

select ename,(sal+IFNULL(comm,0))*13 as "年收入" from emp

限制查询数据

显示工资超过 2850 的雇员姓名和工资

select ename,sal from emp where sal>2850;

显示工资不在 1500 到 2850 之间的所有雇员名及工资.

select ename,sal from emp where sal>2850 or sal<1500;

显示编号为 7566 的雇员姓名及所在部门编号

select ename,deptno from emp where empno = 7566;

#显示部门 10 和 30 中工资超过 1500 的雇员名及工资. select ename,job from emp where (deptno = 10 or deptno = 30) and sal>1500

显示务管理者的雇员工及岗位

select ename,job from emp where mgr is null;

排序数据

显示在 1991 年 2 月 1 日到 1991 年 5月 1 号之间雇佣的雇员名,岗位及雇用日期

select ename,job,hiredate from emp where hiredate >= '1991-02-01' AND hiredate <= '1991-05-01' order by hiredate;

显示获得补助的所有雇员名,工资及补助,并以工资降序排序

select ename,sal,comm from emp order by sal desc;

选择部门30 中的所有员工

select * from emp where deptno = 30;

列出所有办事员 clere 的姓名,编号和部门编号

select ename,empno ,deptno from emp where job = 'CLERK'

找出佣金高于薪金的员工

select * from emp where IFNULL(comm,0)>sal

找出佣金高于薪金 60%的员工

select * from where IFNULL(comm,0)>sal*0.6

找出部门10 中所有经理,部门 20 中所有办事员的详细资料

select * from emp where(deptno = 10 AND job = 'MANAGER') or (deptno = 20 and job = 'CLERK');

找出部门 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)

找出收取佣金员工的不同工作

select distint job from emp where comm is not null

找出不收取佣金或收取的佣金低于 100 的员工

select * from emp where comm is null or ifnull(comm,0)<100

找出个月倒数第三天受雇的所有员工

提示:last_day(日期),可以返回该日期所在月份的最后一天 select last_day(now()) from emp where last_day(hiredate)-2 == hiredate;