Mysql存储过程声明及使⽤
存储过程(Stored Procedure):是⼀组⽤于完成特定数据库功能的sql语句集,该sql语句集经过编译后存储在数据库系统中,在使⽤的时候,⽤户通过调⽤指定已经定义好的存储过程并执⾏它,从⽽完成⼀系列的数据库操作;
1.声明创建⼀个存储过程
# 定义基本存储过程
DROP PROCEDURE IF EXISTS test; #如果存在指定存储过程则删除它
DELIMITER // # 定义存储过程结束符,
CREATE PROCEDURE test() # 创建存储过程
BEGIN # 存储过程要执⾏的操作
SELECT'Hello World!'
END//
CALL test(); # 调⽤存储过程
2.声明变量
#存储过程变量的声明和使⽤
DROP PROCEDURE IF EXISTS test; #如果存在指定存储过程则删除它
DELIMITER // # 定义存储过程结束符,
CREATE PROCEDURE test()
BEGIN
DECLARE aa VARCHAR(20); # 定义变量
mysql存储过程使用DECLARE bb INT DEFAULT0; # 定义int 类型变量默认为0;
SET aa ='张三'; # 变量赋值
SELECT aa; # 输出变量
SELECT bb; # 输出变量
END//
CALL test(); # 调⽤存储过程
3.流程控制语句的声明使⽤
#存储过程流程控制语句使⽤
DROP PROCEDURE IF EXISTS test_2;
DELIMITER //
CREATE PROCEDURE test_2()
BEGIN
DECLARE aa INT; # 定义变量
DECLARE bb INT; # 定义变量
SET aa =20; # 变量赋值
SET bb =20; # 变量赋值
IF aa > bb THEN # 判断
SELECT aa;
ELSEIF aa < bb THEN # else if可以有多个
SELECT bb;
ELSE # else只能存在⼀个
SELECT aa+bb;
END IF; # 结束if 语句
END//
CALL test_2(); # 调⽤存储过程
4.loop 循环语句的使⽤
#loop 循环语句的使⽤
# 输出1-100之间所有数字之和
DROP PROCEDURE IF EXISTS test_3;
DELIMITER //
CREATE PROCEDURE test_3()
BEGIN
DECLARE aa INT DEFAULT0; # 定义变量默认值为0
DECLARE sums INT DEFAULT0; # 定义变量默认值为0
loopName:LOOP # 循环开始:loopName 定义循环名
SET aa = aa +1; # 设置变量⾃增
SET sums = sums + aa;
IF aa >=100THEN # loop 需要设置跳出条件,不然会变成死循环
LEAVE loopName; # 结束循环
END IF; # 结束if 语句
END LOOP; # 结束loop 循环语句
SELECT sums; # 输出结果
END//
CALL test_3(); # 调⽤存储过程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论