MySQL 数据库 智能人力资源员工绩效数据处理示例

MySQL 数据库阿木 发布于 13 天前 5 次阅读


智能人力资源员工绩效数据处理示例:基于MySQL数据库的代码实现

在当今的企业管理中,人力资源部门扮演着至关重要的角色。员工绩效数据作为衡量员工工作表现的重要指标,对于企业的决策和员工的发展具有重要意义。本文将围绕“智能人力资源员工绩效数据处理”这一主题,结合MySQL数据库,通过一系列代码示例,展示如何实现员工绩效数据的存储、查询、分析和可视化。

1. 数据库设计与创建

1.1 数据库设计

在开始编写代码之前,我们需要设计一个合理的数据库结构。以下是一个简单的员工绩效数据库设计示例:

- 员工表(employees):存储员工的基本信息。

- employee_id:员工ID(主键)

- name:员工姓名

- department:所属部门

- position:职位

- 绩效表(performance):存储员工的绩效数据。

- performance_id:绩效ID(主键)

- employee_id:员工ID(外键)

- year:年份

- month:月份

- score:绩效得分

1.2 创建数据库和表

以下是一个使用MySQL创建数据库和表的SQL代码示例:

sql

CREATE DATABASE IF NOT EXISTS hr_performance;

USE hr_performance;

CREATE TABLE IF NOT EXISTS employees (


employee_id INT AUTO_INCREMENT PRIMARY KEY,


name VARCHAR(50) NOT NULL,


department VARCHAR(50) NOT NULL,


position VARCHAR(50) NOT NULL


);

CREATE TABLE IF NOT EXISTS performance (


performance_id INT AUTO_INCREMENT PRIMARY KEY,


employee_id INT NOT NULL,


year INT NOT NULL,


month INT NOT NULL,


score DECIMAL(5, 2) NOT NULL,


FOREIGN KEY (employee_id) REFERENCES employees(employee_id)


);


2. 数据插入与查询

2.1 数据插入

以下是一个使用Python和MySQLdb库向员工表和绩效表中插入数据的示例代码:

python

import MySQLdb

连接数据库


db = MySQLdb.connect("localhost", "username", "password", "hr_performance")


cursor = db.cursor()

插入员工数据


employee_data = [


("张三", "研发部", "工程师"),


("李四", "市场部", "销售"),


("王五", "财务部", "会计")


]


cursor.executemany("INSERT INTO employees (name, department, position) VALUES (%s, %s, %s)", employee_data)

插入绩效数据


performance_data = [


(1, 2021, 1, 85.5),


(1, 2021, 2, 90.0),


(2, 2021, 1, 78.0),


(2, 2021, 2, 82.5)


]


cursor.executemany("INSERT INTO performance (employee_id, year, month, score) VALUES (%s, %s, %s, %s)", performance_data)

提交事务


db.commit()

关闭数据库连接


cursor.close()


db.close()


2.2 数据查询

以下是一个使用Python和MySQLdb库查询员工绩效数据的示例代码:

python

import MySQLdb

连接数据库


db = MySQLdb.connect("localhost", "username", "password", "hr_performance")


cursor = db.cursor()

查询特定员工在某个月的绩效数据


employee_id = 1


year = 2021


month = 2


cursor.execute("SELECT FROM performance WHERE employee_id = %s AND year = %s AND month = %s", (employee_id, year, month))

获取查询结果


results = cursor.fetchall()


for row in results:


print("员工ID:%d, 年份:%d, 月份:%d, 绩效得分:%f" % row)

关闭数据库连接


cursor.close()


db.close()


3. 数据分析与可视化

3.1 数据分析

以下是一个使用Python和pandas库对员工绩效数据进行分析的示例代码:

python

import pandas as pd


import MySQLdb

连接数据库


db = MySQLdb.connect("localhost", "username", "password", "hr_performance")


cursor = db.cursor()

查询所有员工的绩效数据


cursor.execute("SELECT FROM performance")


results = cursor.fetchall()

将查询结果转换为DataFrame


df = pd.DataFrame(results, columns=["performance_id", "employee_id", "year", "month", "score"])

计算每个员工的平均绩效得分


average_score = df.groupby("employee_id")["score"].mean()


print("每个员工的平均绩效得分:")


print(average_score)

关闭数据库连接


cursor.close()


db.close()


3.2 数据可视化

以下是一个使用Python和matplotlib库对员工绩效数据进行可视化的示例代码:

python

import matplotlib.pyplot as plt


import pandas as pd


import MySQLdb

连接数据库


db = MySQLdb.connect("localhost", "username", "password", "hr_performance")


cursor = db.cursor()

查询所有员工的绩效数据


cursor.execute("SELECT FROM performance")


results = cursor.fetchall()

将查询结果转换为DataFrame


df = pd.DataFrame(results, columns=["performance_id", "employee_id", "year", "month", "score"])

绘制每个员工的绩效得分折线图


for employee_id in df["employee_id"].unique():


employee_df = df[df["employee_id"] == employee_id]


plt.plot(employee_df["year"], employee_df["score"], label="员工ID:%d" % employee_id)

plt.xlabel("年份")


plt.ylabel("绩效得分")


plt.title("员工绩效得分折线图")


plt.legend()


plt.show()

关闭数据库连接


cursor.close()


db.close()


总结

本文通过一系列代码示例,展示了如何使用MySQL数据库和Python进行员工绩效数据的存储、查询、分析和可视化。在实际应用中,可以根据具体需求对数据库结构和代码进行扩展和优化。希望本文能对您在人力资源员工绩效数据处理方面有所帮助。