MySql存储过程游标、函数
2022-05-30 22:40
4159 查看
一、游标
1、格式
-- 声明语法 declare cursor_name cursor for select_statement -- 打开语法 open cursor_name -- 取值语法 fetch cursor_name int vat_neme 【,var_name】... -- 关闭语法 close cursor_name
2、操作
DROP PROCEDURE IF EXISTS proc1; delimiter $$ create procedure proc1() begin -- 定义局部变量 DECLARE var_user_name VARCHAR(20); DECLARE var_sex VARCHAR(20); DECLARE i int DEFAULT 0; DECLARE num int; -- 声明游标 DECLARE my_cursor cursor for SELECT user_name ,sex from users; -- 打开游标 open my_cursor; SET num=(SELECT count(1) FROM users); -- 使用循环读取游标的值 label:repeat set i=i+1; # 通过游标获取值 FETCH my_cursor into var_user_name,var_sex; SELECT var_user_name,var_sex; UNTIL i>num END repeat label; -- 关闭游标 CLOSE my_cursor; end $$ delimiter ; call proc1();
二、函数
1、格式
create function func_name([param_name type[,...]]) returns type [characteristic ...] begin routine_body end;
参数说明:
(1) func_name 存储函数的名称
(2) param_name type 可选项,指定存储函数的参数。type参数用于指定存储函数的参数类型,该类型可以是mysql数据库中所有支持的类型。
(3) returns type指定返回值的类型
(4) characteristic 可选项,指定存储函数的特性
(5) routine_body sql代码内容
2、操作
没有输入参数
-- 允许创建函数权限信任 set GLOBAL log_bin_trust_function_creators = TRUE; drop FUNCTION if EXISTS func1; delimiter $$ CREATE FUNCTION func1() RETURNS int BEGIN DECLARE cnt int DEFAULT 0; SELECT count(*) into cnt from users; RETURN cnt; end $$ delimiter ; -- 调用存储过程 SELECT func1();
有输入参数
-- 允许创建函数权限信任 set GLOBAL log_bin_trust_function_creators = TRUE; drop FUNCTION if EXISTS func2; delimiter $$ CREATE FUNCTION func2(in_name VARCHAR(20)) RETURNS int BEGIN DECLARE cnt int DEFAULT 0; SELECT count(*) into cnt from users WHERE user_name=in_name; RETURN cnt; end $$ delimiter ; -- 调用存储过程 SELECT func2('迪丽热巴');
相关文章推荐
- 初学mysql(九)-数据库之存储过程、函数与游标(上)
- MySQL存储过程和函数以及游标使用详解
- MySQL 第八篇:自定义函数、存储过程、游标
- 初学mysql(十)-数据库之存储过程、函数与游标-自定义函数和流程控制(下)
- mysql高级语法:变量声明, 游标, 函数, 存储过程, 循环体, 触发器
- 存储过程/游标/mysql 函数
- Mysql 存储过程和函数区别
- MySQL存储过程例子,包含事务,参数,嵌套调用,游标,循环等(转)
- mysql存储过程之游标
- SQL 函数、存储过程、游标与事务模板
- Mysql存储过程和函数区别介绍
- Mysql存储过程和函数
- mysql存储过程和函数使用实例
- MySQL 的存储过程 procedure 与 函数 function 的区别和使用方法
- mysql 存储过程、存储过程嵌套、自定义函数代码示例
- mysql存储过程中使用游标的实例
- mysql-创建函数,存储过程以及视图
- MySQL存储过程和函数的操作(十二)
- Mysql 存储过程和函数
- 深入mysql创建自定义函数与存储过程的详解