Mysql 单表查询

问题:

1. 查看emp表中部门号为20的员工的姓名、职位、参加工作时间、工资、部门编号。
2. 计算每个员工的年薪,要求输出员工姓名、年薪,并设置别名。
3. 查询每个员工的月收入。
4. 显示职位是主管(manager)的员工的姓名、工资、入职时间。
5. 显示第3个字符为字母r的所有员工的姓名及工资。
6. 显示职位为销售员(salesman)或主管(manager)的员工的姓名、工资、职位。
7. 显示所有没有补助(奖金)的员工的姓名。
8. 显示有补助的员工的姓名、工资、补助。
9. 查询出部门编号为30的所有员工。
10.所有销售员的编号、姓名、工作、领导编号、部门编号。
11.找出奖金高于工资的员工。
12.找出有奖金,且工资高于奖金90%的员工姓名、工资、奖金。
13.找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。
14.找出部门编号为10中所有经理,部门编号为20中所有销售员,以及既不是经理又不是销售员但其工资大于等于2000的所有员工详细资料。
15.查询没有奖金或奖金低于1000的员工。
16.查询名字由四个字组成的员工。
17.查询1981年入职的员工姓名、工作、入职时间。
18.查询员工编号、姓名、工作、入职时间,按员工编号升序排序
19.查询所有员工详细信息,按工资降序排序,如果工资相同使用入职日期升序排列
20.查询姓名不包含M,且工资大于1500或年薪不低于30000的雇员编号、姓名、工资、年薪,按雇员姓名降序排列

解答:

1. 查看emp表中部门号为20的员工的姓名、职位、参加工作时间、工资、部门编号。

select ename,job,hiredate,sal,deptno from emp where deptno=20;

2. 计算每个员工的年薪,要求输出员工姓名、年薪,并设置别名。

select ename name,(sal+ifnull(comm,0))*12 income from emp;

3. 查询每个员工的月收入。

select ename,sal+ifnull(comm,0) 月收入 from emp;

4. 显示职位是主管(manager)的员工的姓名、工资、入职时间。

select ename,sal,hiredate from emp where job='manager';

5. 显示第3个字符为字母r的所有员工的姓名及工资。

select ename,sal from emp where ename like  '__r%';

6. 显示职位为销售员(salesman)或主管(manager)的员工的姓名、工资、职位。

select ename,sal,job from emp where job in('salesman' ,'manager');

7. 显示所有没有补助(奖金)的员工的姓名。

select ename from emp where comm is null;

8. 显示有补助的员工的姓名、工资、补助。

select ename,sal,comm from emp where comm is not null;

9. 查询出部门编号为30的所有员工。

select * from emp where deptno=30;

10.所有销售员的编号、姓名、工作、领导编号、部门编号。

select empno,ename,job,mgr,deptno from emp where job='salesman';

11.找出奖金高于工资的员工。

select * from emp where comm>sal;

12.找出有奖金,且工资高于奖金90%的员工姓名、工资、奖金。

select ename,sal,comm from emp where comm is not null and sal>comm*0.9;

13.找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料。

select * from emp where (job='manager' and deptno=10) or (job='salesman' and deptno=20) ;

14.找出部门编号为10中所有经理,部门编号为20中所有销售员,以及既不是经理又不是销售员但其工资大于等于2000的所有员工详细资料。

select * 
from emp 
where (job='manager' and deptno=10) or (job='salesman' and deptno=20) or (job !='manager' and job !='salesman'  and sal>=2000) ;

15.查询没有奖金或奖金低于1000的员工。

select * from emp where comm is null or comm<1000;

16.查询名字由四个字组成的员工。

select * from emp where ename like '____';

17.查询1981年入职的员工姓名、工作、入职时间。

select ename,job,hiredate from emp where hiredate like '1981%';

18.查询员工编号、姓名、工作、入职时间,按员工编号升序排序

select empno,ename,job,hiredate from emp order by empno asc;

19.查询所有员工详细信息,按工资降序排序,如果工资相同使用入职日期升序排列

select * from emp order by sal desc,hiredate asc;

20.查询姓名不包含M,且工资大于1500或年薪不低于30000的雇员编号、姓名、工资、年薪,按雇员姓名降序排列

select empno,ename,sal,(sal+ifnull(comm,0))*12 income 
from emp 
where not ename like '%m%' and sal>1500 or (sal+ifnull(comm,0))*12>=30000 order by ename desc;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值