mysql查表相关练习

时间:2024-11-04 13:12:18

作业要求:

单表练习:

1 . 查询出部门编号为 D2019060011 的所有员工
2 . 所有财务总监的姓名、编号和部门编号。
3 . 找出奖金高于工资的员工。
4 . 找出奖金高于工资 40% 的员工。
5 找出部门编号为 D2019090011 中所有财务总监,和部门编号为 D2019060011 中所有财务专员的详细资
料。
6 . 找出部门编号为 D2019090001 中所有总经理,部门编号为 D2019090011 中所有财务总监,还有即不是总
经理又不是销售总监但其工资大或等于 4000 的所有员工详细资料。
7 有奖金的工种。
8 无奖金或奖金低于 1000 的员工。
9 . 查询名字由两个字组成的员工。
10 . 查询 2020 年入职的员工。
11 . 查询所有员工详细信息,用编号升序排序。
12 . 查询所有员工详细信息,用工资降序排序,如果工资相同使用入职日期升序排序。
13 . 查询每个部门的平均工资。
14 . 求出每个部门的雇员数量。
15 . 查询每种工作的最高工资、最低工资、人数 .
16 . 列出最低薪金大于 4000 的各种工作及从事此工作的员工人数。
17 . 统计各部门工资总和,显示部门编号和该部门雇员的月工资的总和,并且要满足该部门雇员的月工资合计
大于 6000 ,输出结果按月工资的合计升序排列。
多表练习
1 . 列出所有员工的姓名及其直接上级的姓名。
2 . 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
3 . 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
4 . 列出在财务部工作的员工的姓名,假定不知道财务部的部门编号。
5 . 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导。
6 . 列出与陈超从事相同工作的所有员工及部门名称。
7 . 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。
8 . 列出薪金高于在财务部工作员工平均薪金的员工姓名和薪金、部门名称

创建两个表,数据如下:

drop table if exists employee;
create table employee(
id bigint not null auto_increment,
number varchar(20) not null,
name varchar(50),
job varchar(50),
leader_NO varchar(20),
hire_date date,
salary decimal(7,2),
bonus decimal(7,2),
level integer default 0 comment '职位级别,9最高',
department_NO varchar(20),
primary key(id)
);
drop table if exists department;
create table department(
id bigint not null auto_increment,
number varchar(20) not null,
name varchar(50),
location varchar(50),
super_NO varchar(20),
primary key(id)
);

insert into department values
 (0, 'D2019050001', '清华集团', '北京', null), (0, 'D2019050002', '集团总部', '北京','D2019050001'),
(0, 'D2019060001', '成都中心', '成都', 'D2019050001'), (0, 'D2019060002', '武汉中心', '武汉','D2019050001'),
(0, 'D2019090001', '上海中心', '上海', 'D2019050001'), (0, 'D2020010001', '广州中心', '广州','D2019050001'),
(0, 'D2019090011', '财务部', '上海', 'D2019090001'),(0, 'D2020020012', '行政部', '上海','D2019090001'),
(0, 'D2019060011', '财务部', '成都', 'D2019060001'), (0, 'D2019060012', '技术部', '成都','D2019060001'),
(0, 'D2019060013', '网络部', '成都', 'D2019060001'), (0, 'D2019060014', '市场部', '成都', 'D2019060001');

insert into employee values(0,'E2018010001','吴所为','总经理', null,'2018-01-01',2800,4000,9,'D2019060001');
insert into employee values(0,'E2018070003','韩金龙','总经理', null,'2018-07-01',2800,4000,8,'D2019090001');
insert into employee values(0,'E2018060002','王黎明','总经理', null,'2018-06-01',2800,4000,8,'D2019060002');
insert into employee values(0,'E2018020002','龚爱国','总经理', null,'2018-02-01',2800,4000,8,'D2020010001');
insert into employee values(0,'E2019050001','马金花','财务总监', 'E2018010001','2019-01-01',3800,500,6,'D2019060011');
insert into employee values(0,'E2019050018','李昌贵','财务专员', 'E2019050001','2019-04-21',2800,800,4,'D2019060011');
insert into employee values(0,'E2019100011','王建国','网络管理员', 'E2018010001','2019-10-01',3200,null,5,'D2019060013');
insert into employee values(0,'E2019110004','黎锦熙','网络管理员', 'E2019100011','2019-11-01',3200,null,5,'D2019060013');
insert into employee values(0,'E2020020023','繁茂森','销售专员', 'E2019060005','2020-02-01',2800,0,4,'D2019060014');
insert into employee values(0,'E2019060005','张善民','销售经理', 'E2018010001','2019-06-01',2800,500,6,'D2019060014');
insert into employee values(0,'E2019060009','廖云龙','技术总监', 'E2018010001','2019-06-01',4800,2000,7,'D2019060012');
insert into employee values(0,'E2019120021','刘盛会','研发工程师', 'E2019060009','2019-12-11',4800,500,5,'D2019060012');
insert into employee values(0,'E2019020001','马明全','高级工程师', 'E2019060009','2019-02-01',4800,1000,6, 'D2019060012');
insert into employee values(0,'E2019120015','李意','行政专员', 'E2018070003','2019-12-20',2800,500,4,'D2019090001');
insert into employee values(0,'E2019020017','刘六一','财务总监', 'E2018070003','2019-02-16',3800,1000,6,'D2019090011');
insert into employee values(0,'E2020020012','陈超','研发工程师', 'E2019060009','2020-02-18',4200,500,5,'D2019060012');

建好如图

单表查询练习

1. 查询出部门编号为D2019060011的所有员工

2. 所有财务总监的姓名、编号和部门编号。

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

4. 找出奖金高于工资40%的员工。

5 找出部门编号为D2019090011中所有财务总监,和部门编号为D2019060011中所有财务专员的详细资料。

6. 找出部门编号为D2019090001中所有总经理,部门编号为D2019090011中所有财务总监,还有即不是总经理又不是销售总监但其工资大或等于4000的所有员工详细资料。

7有奖金的工种。

8无奖金或奖金低于1000的员工。

9. 查询名字由两个字组成的员工。

10.查询2020年入职的员工。

11. 查询所有员工详细信息,用编号升序排序。

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

13. 查询每个部门的平均工资。

14. 求出每个部门的雇员数量。

15. 查询每种工作的最高工资、最低工资、人数.

16. 列出最低薪金大于4000的各种工作及从事此工作的员工人数。

17. 统计各部门工资总和,显示部门编号和该部门雇员的月工资的总和,并且要满足该部门雇员的月工资合计大于6000,输出结果按月工资的合计升序排列。

多表联查练习

1. 列出所有员工的姓名及其直接上级的姓名。

2. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。

3. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门

4. 列出在财务部工作的员工的姓名,假定不知道财务部的部门编号。

5. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导。

6. 列出与陈超从事相同工作的所有员工及部门名称。

7. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。

8. 列出薪金高于在财务部工作员工平均薪金的员工姓名和薪金、部门名称