Mysql数据库使用练习:人力资源管理系统而设计,其中设计到三张表,分别为部门表,员工表......

#Mysql数据库使用练习

##设计背景
该练习主要针对人力资源管理系统而设计,其中设计到三张表,分别为部门表,员工表。
部门表主要用于存储部门名称,地址等信息
员工表主要用于存储员工姓名,职位,上级主管编号,月薪,部门编号等信息

表创建/数据准备
– 创建人力资源管理系统数据库

drop database if exists HR;
create database HR default charset utf8;

– 切换数据库上下文环境

use HR;
drop table if exists TbEmp;
drop table if exists TbDept;

– 创建部门表

create table TbDept
(
deptno tinyint primary key,	-- 部门编号
dname varchar(10) not null,	-- 部门名称
dloc varchar(20) not null	-- 部门所在地
);

– 添加部门记录

insert into TbDept values (10, '会计部', '北京');
insert into TbDept values (20, '研发部', '成都');
insert into TbDept values (30, '销售部', '重庆');
insert into TbDept values (40, '运维部', '深圳');

– 创建员工表

create table TbEmp
(
empno int primary key,		-- 员工编号
ename varchar(20) not null,	-- 员工姓名
job varchar(20) not null,	-- 员工职位
mgr int,			-- 主管编号
sal int not null,		-- 员工月薪
dno tinyint			-- 所在部门编号
);
alter table TbEmp add constraint fk_dno foreign key (dno) references TbDept(deptno);

– 添加员工记录

insert into TbEmp values (7800, '张三丰', '总裁', null, 9000, 20);
insert into TbEmp values (2056, '乔峰', '分析师', 7800, 5000, 20);
insert into TbEmp values (3088, '李莫愁', '设计师', 2056, 3500, 20);
insert into TbEmp values (3211, '张无忌', '程序员', 2056, 3200, 20);
insert into TbEmp values (3233, '丘处机', '程序员', 2056, 3400, 20);
insert into TbEmp values (3251, '张翠山', '程序员', 2056, 4000, 20);
insert into TbEmp values (5566, '宋远桥', '会计师', 7800, 4000, 10);
insert into TbEmp values (5234, '郭靖', '出纳', 5566, 2000, 10);
insert into TbEmp values (3344, '黄蓉', '销售主管', 7800, 3000, 30);
insert into TbEmp values (1359, '胡一刀', '销售员', 3344, 1800, 30);
insert into TbEmp values (4466, '苗人凤', '销售员', 3344, 2500, 30);
insert into TbEmp values (3244, '欧阳锋', '程序员', 3088, 3200, 20);
insert into TbEmp values (3577, '杨过', '会计', 5566, 2200, 10);
insert into TbEmp values (3588, '朱九真', '会计', 5566, 2500, 10);

题目练习及答案
– 查询薪资最高的员工姓名和工资

select ename, sal from TbEmp where sal=(select max(sal) from TbEmp);

– 查询员工的姓名和年薪(月薪*12)

select ename, sal*12 as annSal from TbEmp;

– 查询员工的部门的编号和人数

select dno, count(dno) from TbEmp group by dno;

– 查询所有部门的名称和人数

select dname, ifnull(total, 0) from TbDept t1 left outer join
(select dno, count(dno) as total from TbEmp group by dno) t2
on deptno=dno;

– 查询薪资最高的员工(Boss除外)的姓名和工资

select ename, sal from TbEmp where sal=(select max(sal) from TbEmp where mgr is not null);

– 查询薪水超过平均薪水的员工的姓名和工资

select ename, sal from TbEmp where sal>(select avg(sal) from TbEmp);

– 查询薪水超过其所在部门平均薪水的员工的姓名、部门编号和工资
– 写法1:

select ename, sal, t1.dno from TbEmp as t1,
(select dno, avg(sal) as avgSal from TbEmp group by dno) as t2 
where t1.dno=t2.dno and t1.sal>t2.avgSal;

– 写法2:

select ename, sal, t1.dno from TbEmp as t1 inner join
(select dno, avg(sal) as avgSal from TbEmp group by dno) as t2 
on t1.dno=t2.dno and t1.sal>t2.avgSal;

– 查询部门中薪水最高的人姓名、工资和所在部门名称

select ename, sal, dname from TbDept as t1 inner join
(select ename, sal, t2.dno from TbEmp as t2 inner join
(select dno, max(sal) as maxSal from TbEmp group by dno) t3
on t2.dno=t3.dno and sal=maxSal) as t4 on deptno=dno;

– 查询主管的姓名和职位

select ename, job from TbEmp where empno in 
(select distinct mgr from TbEmp where mgr is not null);

– 查询薪资排名前3的员工姓名和工资

select ename, sal from TbEmp order by sal desc limit 3;
select ename, sal from TbEmp order by sal desc limit 0,3;
select ename, sal from TbEmp order by sal desc limit 3 offset 0;

– 求薪水排在第4-8名雇员

select ename, sal from TbEmp order by sal desc limit 3,5;
select ename, sal from TbEmp order by sal desc limit 5 offset 3;
人力资源管理系统ASP+SQL Server2005实现,有文档 使用说明 系统介绍 随着企业内人力资源管理的网络化和系统化的日益完善,人力资源管理系统在企业管理中越来越受企业管理者的青睐。人力资源管理系统的功能全面、操作简单,可以存放企业员工的基本信息、分配和管理企业员工工作任务、实现对企业员工的考勤管理,能够方便快捷地掌握员工的人信息、工作进度和工作状态等,降低企业人力资源管理的人力和成本,并提高人力资源管理的效率。使企业真正实现人力资源的网络化、系统化和科学化的管理。 操作注意事项 (1)首页文件为:\index.asp (2)最高级别员工的用户名为tsoft,密码为111。 操作流程 使用本系统请按照以下流程操作: (1)首先在人事管理中添加部门信息及职位信息。 注意:在添加部门时,最高级的总部信息不可以删除,但可修改。 (2)在人事管理/合同模板中设置合同模板。 (3)在招聘管理/添加招聘信息中添加招聘信息。 (4)在招聘管理/添加应聘信息中添加应聘人员信息。 (5)在招聘管理/导入企业人才库中将应聘合格人员导入到人才库中,成为本公司的正式员工。 (6)在人事管理/添加员工中添加员工进入公司日期。 (7)在人事管理/人事设置中为新员工添加职位。 (8)在人事管理/添写合同中与新员工签订劳动合同。 (9)在“系统管理”/“添加用户”和“用户管理”中为新员工设置用户名、密码及操作权限。 (10)在“培训管理”中可添加培训任务和课程。 (11)在“人事管理”中可为新员工布置工作任务,员工登录后可查看到。 (12)员工在个人管理中可以申请假期及添加考勤信息,其假期审批只有具有“主管部门审批”和“人事部门审批”权限,其中“主管部门审批”必须是同部门员工。 (13)在“薪酬管理”中可添加员工的月工资。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值