0
点赞
收藏
分享

微信扫一扫

Mysql 单表查询 练习一

云竹文斋 2022-04-08 阅读 74
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;

 

举报

相关推荐

0 条评论