11存储过程

Posted start20180703

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11存储过程相关的知识,希望对你有一定的参考价值。

创建封装

CREATE PROCEDURE p1() 
BEGIN
    INSERT INTO goods VALUES(null,寒舍,50);    
    SELECT * FROM goods;
END

使用封装

CALL p1();

 

传参创建带有参数的封装

#入参IN、出参OUT、出入参OUTIN
CREATE PROCEDURE p2(IN i INT,INOUT names VARCHAR(50)) 
BEGIN
    UPDATE goods SET name=names WHERE id=i;
    SELECT names;
END

 

 使用带有参数的封装,出参传参必须先赋个值

SET @names=大鹅;
CALL p2(4,@names);

 

 将查询到的值赋值给其他,INTO关键字可以将前面字段的查询结果执行给INTO后面的变量

SELECT 要查询的值 INTO 要赋的值 FROM ...

 

 

控制--创建带有参数和条件的封装

CREATE PROCEDURE p3(IN flag CHAR(5),IN nums INT)
BEGIN
    IF flag=true THEN SELECT * FROM goods WHERE num<nums;
    ELSEIF flag=false THEN SELECT * FROM goods WHERE num>nums;
    ELSE SELECT * FROM goods;
    END IF;
END 

 

 使用

CALL p3(false,20);

 

 

 

循环--创建一个计算1到100的和的封装

#计算1到100的和
CREATE PROCEDURE p4(IN n INT,OUT m INT)
BEGIN
    DECLARE i INT DEFAULT 0;
    DECLARE sums INT;
    SET sums=0;
    WHILE i<=n DO
        SET sums=sums+i;
        SET i=i+1;
    END WHILE;
    SET m=sums;
END

 

运行此封装

技术图片

 

以上是关于11存储过程的主要内容,如果未能解决你的问题,请参考以下文章

2021-09-11:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。反转后整数超过 32 位的有符号整数的范围就返回0,假设环境不允许存储 64 位整数(有符号或无符号)。(代码片段

Oracle 11g 代码上的 PL/SQL 是在执行存储过程时

如何在kotlin的片段内显示网格视图?

如何将代码片段存储在 mongodb 中?

Java调用SQL Server的存储过程详解(转)

将位图从片段保存到内部/外部存储[关闭]