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小时内删除。