MySQL初级-19-存储过程

本文最后更新于:2020年7月28日 下午

mysql Ver 14.14 Distrib 5.5.62

文中案例所用数据库下载

19.1 含义

存储过程是一组预先编译并存储在数据库中的一段SQL语句的集合。

19.2 优点

  1. 提高代码的重用性。
  2. 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率。
  3. 简化了操作。

19.3 存储过程的创建

19.3.1 语法

CREATE PROCEDURE 存储过程名(参数模式 参数名 参数类型)
BEGIN
	存储过程体(一组合法的SQL语句)
END

19.3.2 注意

  1. 参数模式包含以下三中类型。

    IN:该模式下的参数可以作为输入,需要调用该函数的方法传入值。

    OUT:该模式下的参数可以作为输出,该参数作为返回值。

    INOUT:该模式下的参数既可以作为输入,又可以作为输出,同时需要传入值和返回值。

  2. 如果存储过程体仅仅只有一句话,BEGIN END可以省略。

  3. 存储过程体中的每条SQL语句的结尾必须加分号。

  4. 存储过程体的结束标记可以使用DELIMITER自定义。

    DELIMITER 结束标记

19.3.3 示例

  1. 根据输入的女神名,返回对应的男神名。

    DELIMITER $
    CREATE PROCEDURE pr1(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20))
    BEGIN
    	SELECT bo.boyName INTO boyName
    	FROM boys bo
    	INNER JOIN beauty b
    	ON b.boyfriend_id=bo.id
    	WHERE b.name=beautyName;
    END $
    DELIMITER ;

19.4 存储过程的调用

CALL 存储过程名(实参列表)结束标记

19.5 存储过程的删除

DROP PROCEDURE 存储过程名;

19.6 查看存储过程的信息

SHOW CREATE PROCEDURE 存储过程名;

版权声明:自由转载-非商用-非衍生-保持署名 Creative Commons BY-NC-ND 3.0 协议,转载请注明出处!

 目录