这是我参与「第四届青训营 」笔记创作活动的第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;