职工工资管理系统sql有什么存储过程可以创建
时间: 2024-01-27 12:03:19 浏览: 26
一个职工工资管理系统中可以创建的存储过程包括:
1. 添加新员工信息的存储过程
2. 更新员工信息的存储过程
3. 删除员工信息的存储过程
4. 根据员工ID查询员工信息的存储过程
5. 查询所有员工信息的存储过程
6. 计算员工薪资的存储过程
7. 查询员工薪资信息的存储过程
8. 查询某一时间段内员工的工资总和的存储过程
9. 统计每个部门的员工人数和平均薪资的存储过程
10. 统计某一时间段内每个部门的工资总和的存储过程
以上是一些常见的职工工资管理系统中可以创建的存储过程,根据实际需求可以添加或修改。
相关问题
sql 的职工工资管理系统
SQL 的职工工资管理系统可以用于对公司内部的职工进行工资管理,包括工资的计算、发放、查询等。下面是一个简单的职工工资管理系统的表结构设计:
1. 职工表(Employee):
| 列名 | 数据类型 | 说明 |
|:----:|:-------:|:-----|
| id | int | 职工编号,主键 |
| name | varchar(50) | 职工姓名 |
| gender | varchar(10) | 职工性别 |
| birthday | date | 职工出生日期 |
| department | varchar(50) | 所属部门 |
| position | varchar(50) | 职位 |
2. 工资表(Salary):
| 列名 | 数据类型 | 说明 |
|:----:|:-------:|:-----|
| id | int | 工资编号,主键 |
| emp_id | int | 职工编号,外键 |
| salary | decimal(10,2) | 基本工资 |
| bonus | decimal(10,2) | 奖金 |
| overtime_pay | decimal(10,2) | 加班费 |
| tax | decimal(10,2) | 税费 |
| total_pay | decimal(10,2) | 实发工资 |
| pay_date | date | 工资发放日期 |
3. 员工职位表(Position):
| 列名 | 数据类型 | 说明 |
|:----:|:-------:|:-----|
| id | int | 职位编号,主键 |
| position_name | varchar(50) | 职位名称 |
| base_salary | decimal(10,2) | 基本工资 |
在这个系统中,职工表存储了职工的基本信息,工资表记录了职工的工资信息,员工职位表则记录了不同职位的基本工资。通过这个系统,可以实现对职工的基本信息、工资信息和职位信息的管理,以及工资的计算、发放和查询等功能。
职工工资管理系统中触发器的实现
触发器是一种特殊的存储过程,它在特定的数据库操作(例如插入、更新或删除)发生时自动执行。在职工工资管理系统中,可以使用触发器来实现以下功能:
1. 自动计算员工的最终工资并更新员工工资表中的记录。
2. 监测员工考勤表中的打卡情况,如果某个员工某天没有打卡,则自动将其最终工资中的相应部分扣除。
下面是一个示例触发器的代码,它可以在员工考勤表中插入新记录时自动更新员工工资表中的最终工资:
```sql
CREATE TRIGGER update_salary
AFTER INSERT ON employee_attendance
FOR EACH ROW
BEGIN
UPDATE employee_salary
SET final_salary = original_salary + allowance - tax
WHERE employee_id = NEW.employee_id
AND salary_year = NEW.salary_year
AND salary_month = NEW.salary_month;
END;
```
在上面的代码中,`employee_attendance`是员工考勤表的表名,`employee_salary`是员工工资表的表名。`NEW`是一个特殊的关键字,表示插入的新记录。当在`employee_attendance`表中插入新记录时,触发器会自动计算该员工的最终工资并更新`employee_salary`表中的记录。