MYSQL 存储过程的运用

/ 0评 / 0

mysql存储过程是数据库中的一组预编译 SQL 语句。存储过程通常用于封装复杂的操作逻辑,简化应用程序和数据库之间的交互。存储过程支持输入参数、输出参数和返回值,可以包含控制流语句(如条件判断、循环等),用于实现复杂的业务逻辑。

存储过程


# 简易模型
CREATE PROCEDURE procedure_name ([parameters])
BEGIN
    -- SQL statements
END;

procedure_name: 存储过程的名称
parameters: 输入、输出参数列表(可选)
BEGIN ... END: 存储过程的主体部分,包含 SQL 语句。

# 存储过程支持三种类型的参数:

IN:输入参数。
OUT:输出参数。
INOUT:输入输出参数。

示例:

DELIMITER $$
CREATE PROCEDURE GetEmployeeDetails(
    IN emp_id INT,          -- 输入参数
    OUT emp_name VARCHAR(100),  -- 输出参数
    OUT emp_salary DECIMAL(10,2)  -- 输出参数
)
BEGIN
    SELECT name, salary
    INTO emp_name, emp_salary
    FROM employees
    WHERE employee_id = emp_id;
END $$

DELIMITER ;

调用

CALL GetEmployeeDetails(1001, @name, @salary);
SELECT @name, @salary;

流程控制示例:

DELIMITER $$

CREATE PROCEDURE CheckSalary(IN emp_id INT)
BEGIN
    DECLARE emp_salary DECIMAL(10,2);

    SELECT salary INTO emp_salary
    FROM employees
    WHERE employee_id = emp_id;

    IF emp_salary > 10000 THEN
        SELECT 'Salary is high' AS Message;
    ELSE
        SELECT 'Salary is normal' AS Message;
    END IF;
END $$

DELIMITER ;

删除存储过程

DROP PROCEDURE procedure_name;

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注