MySQL存储过程入门

Posted Tech Memo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL存储过程入门相关的知识,希望对你有一定的参考价值。

创建不含有输入输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetSalary; -- 如果该存储过程已经存在,则删除

CREATE PROCEDURE GetSalary ( OUT salaryhigh INT, OUT salarylow INT, OUT salaryavg INT ) BEGIN -- 创建不含有输入输出变量的存储过程
    SELECT
        Max( salary ) INTO salaryhigh 
    FROM
        salaries;
        
    SELECT
        Min( salary ) INTO salarylow 
    FROM
        salaries;
        
    SELECT
        Avg( salary ) INTO salaryavg 
    FROM
        salaries;
    
END // 
DELIMITER; -- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

 

创建带有输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetTotalNum; -- 如果该存储过程已经存在,则删除

CREATE PROCEDURE GetTotalNum (OUT TotalNum INT ) BEGIN -- 创建带有输出变量的存储过程
    SELECT
        count( * ) INTO TotalNum 
    FROM
        dept_emp;
    
END // 
DELIMITER ;-- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

 

创建带有输入输出变量的存储过程

DELIMITER // -- 设定语句结束分隔符
DROP PROCEDURE IF EXISTS GetNumEachDept; -- 如果该存储过程已经存在,则删除
CREATE PROCEDURE GetNumEachDept ( IN dept CHAR(10), OUT NumDept INT ) BEGIN -- 创建带有输入输出变量的存储过程
    SELECT
        count( * ) INTO NumDept 
    FROM
        dept_emp 
    WHERE
        dept_no = dept;
    
END// 
DELIMITER; -- 重新设定语句结束分隔符,每次查询结束后都要将分隔符还原为;

以上是关于MySQL存储过程入门的主要内容,如果未能解决你的问题,请参考以下文章