存储过程
什么是存储过程
创建一组为了完成特定功能的SQL语句集
之后需要用到时就可以直接用存储过程名使用
创建的存储过程保存在数据库的数据字典中
创建调用与删除
/* 创建 */
DELIMITER $$
CREATE PROCEDURE 名称()
BEGIN
语句
END $$
DELIMITER ;
/* 调用 */
call 名称();
/* 删除 */
drop procedure 名称;
变量声明
在存储过程中声明一个变量
/* 声明整形变量a默认值为0 */
DECLARE a INT DEFAULT 0;
/* 声明多个同类型 */
DECLARE x, y INT DEFAULT 0;
分配变量值
SET total_count = 10 ;
SELECT COUNT(*) INTO a FROM 表 ;
参数定义
参数的三种类型
delimiter $$
CREATE procedure name1(in x int ,OUT y int)
BEGIN
SET y = x+x;
END$$
delimiter ;
set @b=3;
CALL name(5,@b);
SELECT @b;
结果为10
定义参数
流程语句
IF 布尔式 THEN
操作语句;
END IF;
IF 布尔式 THEN
操作语句;
ELSE
操作语句;
END IF;
CASE 一变量
WHEN 变量满足条件1 THEN 相应语句
WHEN 变量满足条件2 THEN 相应语句
...
ELSE 相应语句
END CASE;
WHILE 条件判断 DO
...
相应语句
...
END WHILE
REPEAT
...
相应语句
...
UNTIL 条件判断
END REPEAT
set autocommit = 0;
循环语句块
commit;
/* 在循环首尾加上这两条语句,可以避免循环中语句一条一条的执行。
从而提高效率,将循环完毕后所有要执行的语句一起执行
*/
查看存储过程
查看所有存储过程
SHOW PROCEDURE STATUS;
查看指定数据库中的存储过程
SHOW PROCEDURE STATUS WHERE db = '数据库名';
查看指定存储过程源代码
SHOW CREATE PROCEDURE 存储过程名
自定义函数
CREATE FUNCTION 函数名(a int) Returns int
函数对比存储过程
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有