当前位置:Gxlcms > 数据库问题 > mysql 存储过程与函数

mysql 存储过程与函数

时间:2021-07-01 10:21:17 帮助过:2人阅读

一、创建函数

创建格式:

CREATE FUNCTION sp_name ([func_parameter[,...]])

    RETURNS type

    [characteristic ...] routine_body

func_parameter:

    param_name type

总结:函数的参数前不能有修饰符如,INOUT(不同于存储过程),调用时可直接调用,像系统函数一般使用。

mysql> DELIMITER $$

mysql> CREATE FUNCTION func_emsal(empno INT)

    -> RETURNS DOUBLE(10,2)

    -> COMMENT ‘ 查询某个雇员的工资‘

    -> BEGIN

    -> RETURN(

    -> SELECT sal

    -> FROM employee

    -> WHERE employee.empno=empno);

    -> END $$

调用方式:SELECT func_emsal (empno);

二、存储过程

创建格式:

CREATE PROCEDURE sp_name ([proc_parameter[,...]])

    [characteristic ...] routine_body

proc_parameter:

    [ IN | OUT | INOUT ] param_name type

IN用于说明是传入参数,OUT为返还结果的参数(即开始时没有值,调用后有值),INOUT则充当两者的角色

总结:IN,OUT,INOUT用于指定参数的类型,OUT参数的赋值使用set操作符(与局部变量赋值类似),调用时使用call,out参数要有@修饰。

举例:

mysql> DELIMITER $$

mysql> CREATE PROCEDURE proce_emsal()

    -> COMMENT ‘查询所有雇员的工资‘

    -> BEGIN 

    -> SELECT sal

    -> FROM employee;

    -> END$$

调用方式:CALL proce_emsal( ); 

mysql 存储过程与函数

标签:

人气教程排行