MySQL人力资源管理系统

1.设计背景

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

2.表创建/数据准备

-- 创建人力资源管理系统数据库
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);

3.题目练习

1) 查询薪资最高的员工姓名和工资

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

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

select ename, sal*12 as annSal from TbEmp;

3) 查询有员工的部门的编号和人数

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

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

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;

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

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

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

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

7) 查询薪水超过其所在部门平均薪水的员工的姓名、部门编号和工资

-- 写法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;

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

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;

9) 查询主管的姓名和职位

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

10) 查询薪资排名前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;

11) 求薪水排在第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;

数据库 - 03 MySQL人力资源管理系统相关推荐

  1. MySQL数据库03(MySQL的存储引擎 DML语句 父子查询 )

    一.1.MySQL的存储引擎 储存引擎的类型:MyISAM.InnoDB. Memory.CSV等九种 MyiSAM和InnoDB类型主要区别 名称 InnoDB MyISAM 事务处理 支持 不支持 ...

  2. java计算机毕业设计中小企业人力资源管理系统源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计中小企业人力资源管理系统源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计中小企业人力资源管理系统源码+mysql数据库+系统+部署+lw文档 本源码技术栈: ...

  3. 计算机毕业设计Java中小企业人力资源管理系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java中小企业人力资源管理系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java中小企业人力资源管理系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目 ...

  4. JSP 人力资源管理系统 软件开发设计 myeclipse开发 mysql数据库

    一.源码特点  翰文科技原创     JSP 人力资源管理系统 是一套完善的WEB设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发. 文件下 ...

  5. 基于java+swing+mysql+JFeeChart的企业人力资源管理系统(1)

    文章目录 一,前言 二,项目运行图 (1)主界面(管理员界面) (2)员工资料运行图 (3)全部员工查看运行图 (4)部门管理运行图 (5)岗位管理运行图 (6)工资发放系统运行图 (7)薪酬记录运行 ...

  6. 比较简单的初学者模仿毕业设计项目springboot人力资源管理系统.rar(项目源码+数据库文件)

    idea.eclipse开发工具都可以直接导入运行该项目,mysql8.0数据库 主要实现了员工信息管理.部门管理.职位管理.考勤管理.打卡信息管理.请假信息管理.薪资管理.薪资结算等基本功能. Th ...

  7. java毕业生设计中小企业人力资源管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计中小企业人力资源管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计中小企业人力资源管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构 ...

  8. 【参赛作品29】基于openGauss数据库设计人力资源管理系统实验

    本文作者: 瓜西西 本文主要面向openGauss数据库初学者,帮助初学者完成一些简单的数据库管理以及GUI,设计一个简单的人力资源管理系统.本文只包含部分代码,读者需要结合自己的数据库弹性公网.数据 ...

  9. MySQL数据库大作业——学生管理系统GUI

    MySQL数据库大作业--学生管理系统GUI 原程序链接: https://www.bbsmax.com/A/kmzL3WQBdG/ 为了完成数据库大作业, 我在其基础上进行了一定的修改和扩充. 如果 ...

最新文章

  1. 简易快速的开发,需要一个快速开发平台来支持
  2. .NET Core 返回结果统一封装
  3. H3C认证路由交换网络高级工程师
  4. 【实践】因果推断在快手推荐场景的应用探索.pdf(附下载链接)
  5. Linux 之父拒绝 996,Swift、Python 之父痴迷深夜编程,程序员之神的 24 小时!
  6. Oracle 修改 MEMORY_TARGET
  7. 邮件服务器 文件服务器,搭建邮件、终端和文件服务器应用方案
  8. Java代码调用第三方接口发送短信
  9. 数据预处理之数据清洗案例
  10. am调制解调仿真matlab,MATLABAM调制解调系统仿真报告.doc
  11. 家用台式计算机硬件配置清单,台式电脑组装配置清单
  12. 经典4电阻差动放大器
  13. 20145212罗天晨 逆向及Bof基础实践
  14. NDIS驱动学习笔记
  15. 我只是想使用一下微软在线文档
  16. ORA-00821: Specified value of sga_target 980M is too small, needs to be at least 1164M
  17. 铁轨巡检机器人_上海试点轨道智能巡检机器人
  18. 读书笔记————Python编程快速上手
  19. 申请去美国读博士条件有哪些
  20. 基因数据处理35之使用samtools和bcftools进行变异分析2--连续处理

热门文章

  1. 带你开发一个远程控制项目---->STM32+标准库+阿里云平台+传感器模块+远程显示-------之 MQTT连接阿里云平台
  2. 3.从零开始搭建基于SpringCloud的京东整站_文件上传微服务
  3. 广域网优化仍是容灾和云接入的关键
  4. 中级经济师(经济基础知识)第一章 社会主义基本经济制度
  5. 奶牛生子问题(腾讯面试题)
  6. 嵌入式Linux系统 TCP数据转发服务器
  7. 华为消费者一面二面三面面经
  8. 天正安装autocad启动失败_Auto CAD2013/2014天正建筑启动时出现error错误该怎么办?
  9. 点石互动--robin之:渡虎谷SEO大赛第二阶段总结
  10. 前端工程师如何突破瓶颈期