mysql 存储过程

什么是存储过程

为以后使用而创建的一条或者多条SQL语句的集合,可视为批文件,但其作用不仅限于批处理。可以用来处理一些复杂的重复的操作。

为什么要使用存储过程
  • 简单 简化复杂的操作
  • 安全
  • 高性能 使用存储过程比使用简单的SQL要更加的快
新建存储过程
-- 创建存储过程 IN 参数 sel_date 选中时间 OUT 返回值 reg_user_nums 选中天注册的用户数量
CREATE PROCEDURE US_USER_SELECT_DAY ( IN sel_date VARCHAR ( 13 ) ,OUT US_USER_NUMS int(10) ) BEGIN
SELECT
-- 将统计结果赋值给返回值
	COUNT( REG_ID ) INTO  US_USER_NUMS FROM US_USER 
WHERE
	DATE( REG_DATE ) = DATE( sel_date );
END;

在以上示例中 可以看到 存储过程可以传递参数【sel_date】,可以定义返回值【US_USER_NUMS】

删除存储过程
-- 当存在该存储过程时 删除
DROP PROCEDURE IF EXISTS US_USER_SELECT_DAY;
执行存储过程
-- 执行存储过程
CALL US_USER_SELECT_DAY ( '2019-6-27', @total );
-- 获取返回值
SELECT @total;

其中【@total】为以上定义的返回值 【'2019-6-27'】为参数值 筛选时间

查看存储过程信息
-- 查看存储过程的详细信息
SHOW PROCEDURE STATUS LIKE 'US_USER_SELECT_DAY%'