用mysql语句编写一个插入职工信息的源程序,主要包括输入有效性检验,编号生成以及员工入库等等模块。
时间: 2023-12-14 14:37:31 浏览: 73
以下是一个简单的插入职工信息的MySQL源程序,包括了输入有效性检验、编号生成和员工入库等模块。
```mysql
-- 创建职工表
CREATE TABLE IF NOT EXISTS employee (
id INT AUTO_INCREMENT PRIMARY KEY, -- 员工编号,自增长
name VARCHAR(50) NOT NULL, -- 员工姓名,非空
gender VARCHAR(10) NOT NULL, -- 员工性别,非空
age INT NOT NULL, -- 员工年龄,非空
department VARCHAR(50) NOT NULL, -- 员工所在部门,非空
position VARCHAR(50) NOT NULL, -- 员工职位,非空
salary DECIMAL(10,2) NOT NULL -- 员工薪资,非空
);
-- 插入职工信息
INSERT INTO employee (name, gender, age, department, position, salary)
VALUES (
'张三', '男', 28, '销售部', '销售经理', 8000.00
);
-- 输入有效性检验
INSERT INTO employee (name, gender, age, department, position, salary)
VALUES (
'李四', '男', 30, '人事部', '人事经理', -5000.00
); -- 薪资不能为负数,插入失败
-- 编号生成
SET @max_id = (SELECT MAX(id) FROM employee); -- 获取当前最大编号
SET @new_id = IFNULL(@max_id, 0) + 1; -- 生成新编号
INSERT INTO employee (id, name, gender, age, department, position, salary)
VALUES (
@new_id, '王五', '女', 25, '财务部', '会计', 5000.00
);
-- 员工入库
START TRANSACTION; -- 开始事务
INSERT INTO employee (name, gender, age, department, position, salary)
VALUES (
'赵六', '男', 35, '技术部', '技术经理', 10000.00
);
COMMIT; -- 提交事务,完成员工入库
```
以上源程序中,我们首先创建了一个职工表 `employee`,包括了职工的编号、姓名、性别、年龄、所在部门、职位和薪资等信息。接着,我们使用 `INSERT INTO` 语句插入了一条职工信息,其中包括了姓名、性别、年龄、所在部门、职位和薪资等字段。为了保证数据的有效性,我们对薪资进行了非负数检验,如果薪资为负数,则插入失败。
接着,我们使用 `SET` 和 `IFNULL` 函数生成了新的职工编号,确保每个职工的编号唯一。最后,我们使用事务来保证员工入库的原子性,防止出现数据不一致的情况。
阅读全文