1.函数
1.1创建函数
CREATE FUNCTION calculate_salary(emp_id INT) RETURNS INT BEGIN DECLARE emp_salary INT; SELECT salary INTO emp_salary FROM employee WHERE id = emp_id; RETURN emp_salary * 12; END ;
解释:
以上代码定义了一个名为 calculate_salary 的函数,该函数需要一个 emp_id 参数,并且会返回一个整数类型的值。在函数内部,首先声明了一个名为 emp_salary 的局部变量,其类型为整数。然后,使用 SELECT INTO 语句从 employee 表格中查询指定 emp_id 的员工薪水,并将查询结果赋值给 emp_salary 变量。最后,将 emp_salary 值乘以 12 并返回结果。
- 建表及数据准备
CREATE TABLE employee ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT NOT NULL, sex ENUM('M', 'F') NOT NULL, salary DECIMAL (10, 2) NOT NULL, dept_id INT NOT NULL, PRIMARY KEY (id) ); INSERT INTO employee (name, age, sex, salary, dept_id) VALUES ('Tom', 25, 'M', 45000.00, 1), ('Sarah', 31, 'F', 55000.00, 2), ('John', 42, 'M', 65000.00, 3), ('Lisa', 27, 'F', 48000.00, 1), ('David', 39, 'M', 72000.00, 2), ('Amy', 28, 'F', 50000.00, 3), ('Daniel', 45, 'M', 89000.00, 1), ('Emily', 33, 'F', 62000.00, 2);
1.2函数运行
- 使用select 函数名(参数);
SELECT calculate_salary(1);