标签:存储 end -- CREATE begin mysql 过程 PROCEDURE
1.创建存储过程语法
CREATE PROCEDURE 存储过程名 [(参数)] begin --语句块 end;
2.创建无参存储过程
CREATE PROCEDURE db_pro() begin SELECT * from person; end;
--执行存储过程:
CALL db_pro();
3.创建输入参数存储过程:
CREATE PROCEDURE db_pro(IN p INT) begin SELECT * from person WHERE id = p; end; SET @p=1;
--执行存储过程 CALL db_pro(@p);
4.创建输出参数的存储过程
CREATE PROCEDURE db_pro(OUT out_p INT) begin SELECT COUNT(*) INTO out_p from person; SELECT out_p; --如果不写在执行该存储过程讲无法显示输出结果 end; CALL db_pro(@out_p); --SELECT @out_p; --也可以
5.创建inout输入参数的存储过程
CREATE PROCEDURE db_pro(INOUT inout_p INT) begin SELECT COUNT(*) INTO inout_p from person WHERE id = inout_p; SELECT inout_p; --若不写将无法显示输出结果 end; SET @p=1;
CALL db_pro(@p);
6.删除存储过程
DROP PROCEDURE if exists 存储过程名;
7.修改存储过程
ALTER PROCEDURE 存储过程名
8.条件语句
CREATE PROCEDURE proc2(IN parameter int) begin declare var int; set var=parameter+1; if var=0 then insert into t values(17); end if; if parameter=0 then update t set s1=s1+1; else update t set s1=s1+2; end if; end;
------------------------------------------
DELIMITER // CREATE PROCEDURE proc3 (in parameter int) begin declare var int; set var=parameter+1; case var when 0 then insert into t values(17); when 1 then insert into t values(18); else insert into t values(19); end case; end; // DELIMITER ;
9.循环语句
DELIMITER // CREATE PROCEDURE proc4() begin declare var int; set var=0; while var<6 do insert into t values(var); set var=var+1; end while; end; // DELIMITER ;
-- 它在执行操作后检查结果,而while则是执行前进行检查。 DELIMITER // CREATE PROCEDURE proc5 () begin declare v int; set v=0; repeat insert into t values(v); set v=v+1; until v>=5 end repeat; end; // DELIMITER ;
-- loop循环不需要初始条件,这点和while 循环相似,同时和repeat循环一样不需要结束条件, leave语句的意义是离开循环。 DELIMITER // CREATE PROCEDURE proc6 () begin declare v int; set v=0; LOOP_LABLE:loop insert into t values(v); set v=v+1; if v >=5 then leave LOOP_LABLE; end if; end loop; end; // DELIMITER ;
标签:存储,end,--,CREATE,begin,mysql,过程,PROCEDURE 来源: https://www.cnblogs.com/Difcipo/p/14008638.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。