一、需求分析

我们的开发团队,计划开发一款公司人事管理软件,用于帮助中小型企业进行更加高效的人事管理。现在需要对数据库部分进行设计和开发,根据对需求和立项的分析,我们确定该数据库中最核心的两个表为员工表(Employee)和部门表(Department)。两个表的结构如下:

Employee表:

字段名

数据类型

约束

说明

employeeId

int

非空,主键,自增

员工编号

name

varchar

非空

姓名

birth

date

出生日期

joblevel

varchar

长度10

职位级别

salary

decimal

长度10,2位小数

薪资

phone

varchar

长度11

电话

departmentId

int

外键,非空,引用Department表的主键

所属部门

Department表:

字段名

数据类型

约束

说明

departmentId

int

非空,主键,自增

部门编号

name

varchar

长度20

部门名称

二、具体要求

  1. 使用DDL语言创建数据库(Company),创建数据表Employee和Department;
  2. 使用DML语言插入测试数据,具体数据如下(请按照测试数据插入):

Department:

employeeId

name

birth

joblevel

salary

phone

departmentId

1001

张强

1986-2-3

一级

8000

13585422655

1

1003

萌萌

1990-4-19

二级

6000

18548775264

2

1004

李小峰

1973-7-20

二级

5700

18625489512

1

1006

刘珊

1976-6-28

一级

7500

18524811174

2

1007

李梅

1980-1-29

二级

5500

13958621455

3

1008

张宝玉

1982-9-23

二级

5600

13715620210

1

1009

陈大壮

1978-5-21

一级

7700

15848562585

4

1010

张天琪

1980-9-15

二级

5000

13965815822

4

Emploment:

departmentId

name

1

商务部

2

行政部

3

财务部

4

研发部

3、考试结束时,分离出数据脚本文件和查询脚本文件,一并上交;

三、功能实现

创建数据库:

CREATE DATABASE Company;

创建Employee表:

CREATE TABLE employee (
employeeId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
birth DATE,
joblevel VARCHAR(10),
salary DECIMAL(10,2),
phone VARCHAR(11),
departmentId INT NOT NULL
);

创建Department表:

CREATE TABLE Department (
departmentId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);

设置外键:

ALTER TABLE Employee
ADD CONSTRAINT fk_departmentId
FOREIGN KEY (departmentId)
REFERENCES department(departmentId)

插入数据:

-- ----------------------------
-- Records of department
-- ----------------------------
INSERT INTO department VALUES ('1', '商务部');
INSERT INTO department VALUES ('2', '行政部');
INSERT INTO department VALUES ('3', '财务部');
INSERT INTO department VALUES ('4', '研发部');
-- ----------------------------
-- Records of employee
-- ----------------------------
INSERT INTO employee VALUES ('1001', '张强', '1986-02-03', '一级', '8000.00', '13585422655', '1');
INSERT INTO employee VALUES ('1003', '萌萌', '1990-04-19', '二级', '6000.00', '18548775264', '2');
INSERT INTO employee VALUES ('1004', '李小峰', '1973-07-20', '二级', '5700.00', '18625489512', '1');
INSERT INTO employee VALUES ('1006', '刘珊', '1976-06-28', '一级', '7500.00', '18524811174', '2');
INSERT INTO employee VALUES ('1007', '李梅', '1980-01-29', '二级', '5500.00', '13958621455', '3');
INSERT INTO employee VALUES ('1008', '张宝玉', '1982-09-23', '二级', '5600.00', '13715620210', '1');
INSERT INTO employee VALUES ('1009', '陈大壮', '1978-05-21', '一级', '7700.00', '15848562585', '4');
INSERT INTO employee VALUES ('1010', '张天琪', '1980-09-15', '二级', '5000.00', '13965815822', '4');

题目:

1、通过层层面试筛选,你正式成为该公司研发部的一名二级员工,请以自己的信息,插入一条数据到员工表;(5)

INSERT INTO employee VALUES (NULL, '杨明金', '2005-06-01', '二级', '4500.00', '18877778888', '4');

2、统计研发部的员工信息,并按照薪资升序排列;(5)

SELECT * FROM employee e,department d
WHERE e.departmentid=d.departmentid
AND d.name='研发部'
ORDER BY salary

3、给二级员工中,薪资低于5500的,增加薪资500元,并将数据更新到数据库;(10)

UPDATE employee SET salary=salary+500
WHERE joblevel='二级' AND salary<5500

4、查询统计每个部门的员工平均薪资,并显示部门名称和平均薪资;(10)

SELECT d.name 部门名称,ROUND(AVG(salary),2) 平均薪资 FROM employee e,department d
WHERE e.departmentid=d.departmentid
GROUP BY d.name

5、“陈大壮”由于个人原因,从公司离职了,故需从数据库中,删除他的个人信息,请使用DML语言实现该需求;(10)

DELETE FROM employee WHERE name='陈大壮'

6、李梅昨天去换手机卡了,新的号码是15677289289,在系统中,需要对她的电话进行更新。(10)

UPDATE employee SET phone='15677289289' WHERE name='李梅'

7、查询公司中年龄大于35岁姓张的员工信息;(10)

SELECT * FROM employee
WHERE FLOOR(DATEDIFF(CURDATE(),birth)/365)>35
AND name like '张%'

8、计算年龄最大的员工和年龄最小的员工相差的岁数;(10)

SELECT DATEDIFF(MAX(birth),MIN(birth))/365 FROM employee

9、查看最大年龄和最小年龄:

SELECT MAX(DATEDIFF(CURDATE(),birth)/365) 最大年龄,MIN(DATEDIFF(CURDATE(),birth)/365) 最小年龄 FROM employee;

提示:

内置函数curdate()显示当前日期

内置函数datediff(date1,date2)用于计算日期date1和date2之间相隔的天数

MySQL测试题——开发公司人事管理系统,包括 Employee表 和 Department表的更多相关文章

  1. 基于Struts2开发公司职工管理系统 Java源码

    开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+Tomcat+MySql数据库 职工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且已达到了良好效果. 运行效果 ...

  2. Mysql 设计超市经营管理系统,包括员工信息表(employee)和 员工部门表(department)

    互联网技术学院周测机试题(二) 一.需求分析 为进一步完善连锁超市经营管理,提高管理效率,减少管理成本,决定开发一套商品管理系统,用于日常的管理.本系统分为商品管理.员工管理.店铺管理,库存管理等功能 ...

  3. Java Web 开发进阶案例之人事管理系统的完整实现

    技术:Java+ jsp + servlet+ javabeans +sql+tomcat   概述 本系统的主要任务是实现人事管理系统的系统化和自动化管理, 主要包括招聘入 职.到期离职和员工调动信 ...

  4. 「物流跟踪管理系统」 · Java Swing + MySQL JDBC开发,美和易思结业考试机试试题

    目录 文档说明: 一.语言和环境 二.技术要求 三.功能要求 四.数据库设计 五.具体要求及推荐实现步骤 六.注意事项 实现代码: 一.数据库 二.Java Swing com.ynavc.Bean ...

  5. 「会员卡管理系统」 · Java Swing + MySQL JDBC开发

    目录 目录 一.语言和环境 二.实现功能 三.数据库设计 四.具体要求及推荐实现步骤 五.注意事项 六.评分标准 >>>实现代码: 数据库 com.ynavc.Bean com.yn ...

  6. 「超市管理系统——商品管理」 · Java Swing + MySQL JDBC开发

    项目下载:https://download.csdn.net/download/weixin_44893902/13715024 1.9元付费赞助下载:https://download.csdn.ne ...

  7. 第四模块:网络编程进阶&数据库开发 第2章·MySQL数据库开发

    01-MySQL开篇 02-MySQL简单介绍 03-不同平台下安装MySQL 04-Windows平台MySQL密码设置与破解 05-Linux平台MySQL密码设置与破解 06-Mac平台MySQ ...

  8. JAVA课程设计——一个简单的教务人事管理系统

    大三上学期期末总结,没错,上学期,写在下学期新学期开始,哈哈哈. 上学期学习了面向对象程序设计,课程设计的题目使用JAVA语言完成一个简单的教务人事管理系统,能够实现访问数据库的登录验证,分别按部门和 ...

  9. 基于SSM后台管理系统/人事管理系统

    今天给大家分享一个基于SpringMVC+Mybatis+Mysql的后台管理系统,顾名思义,一个系统一般分为前台和后台,前台主要面向用户,而后台主要面向的则是管理员,后台和前台有所不同,后台的业务一 ...

随机推荐

  1. 100个Shell脚本—【脚本6】拷贝目录

    [脚本6]拷贝目录 编写shell脚本,把/root/目录下的所有目录(只需要一级)拷贝到/tmp/目录下: 一.脚本 #!/bin/bash cd /root list=(`ls`) for i i ...

  2. Oracle中创建DB LINK

    当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据.下面讲介绍如何在本地数 ...

  3. 队列——Java实现

    1 package struct; 2 3 interface IQueue{ 4 //入队列 5 void add(Object obj); 6 //出队列 7 Object remove(); 8 ...

  4. CSS3新增特性\HTML标签类型

    RGBA:透明度      作用: 设置透明度(R G B A)   opacity:不透明度     文字也会被设置不透明度   圆角      border-radius:圆角{左上角,右上角.. ...

  5. i++ 和 ++i 探究原理

    先看一个例子: package com.test; public class AutoIncrement { public static void main(String[] args) { int ...

  6. JSP 文字乱码、${}引用无效

    问题: 代码:<form action="/test/requestPost.do" method="post"> <input type=& ...

  7. 手写Mybatis和Spring整合简单版示例窥探Spring的强大扩展能力

    Spring 扩展点 **本人博客网站 **IT小神 www.itxiaoshen.com 官网地址****:https://spring.io/projects/spring-framework T ...

  8. JavaMoney规范(JSR 354)与对应实现解读

    一.概述 1.1 当前现状 当前JDK中用来表达货币的类为java.util.Currency,这个类仅仅能够表示按照**[ISO-4217]**描述的货币类型.它没有与之关联的数值,也不能描述规范外 ...

  9. uWSGI和WSGI之间的关系

    一.WSGI 协议 WSGI:是一种协议规范,起到规范参数的作用,就像告诉公路一样,规定超车靠右行,速度不低于90km/h,等.但这一切都是对双方进行沟通,比如,重庆到武汉这条高速路,这儿重庆和武汉就 ...

  10. 什么是JMS规范?

    一.简介 JMS是什么:JMS是Java提供的一套技术规范和关于消息中间件的协议 JMS干什么用:通过生产者Producer,消息服务器,以及消费者通力合作,使异构系统能进行集成通信,缓解系统瓶颈,提 ...