美文网首页
SQL存储过程和函数(2)

SQL存储过程和函数(2)

作者: 一枚豪迈的胡萝卜 | 来源:发表于2018-08-08 20:03 被阅读0次

存储过程和函数中可以使用流程控制来控制语句的执行。MySQL中可以使用IF语句、CASE语句、LOOP语句、LEAVE语句、ITERATE语句、REPEAT语句和WHILE语句来进行流程控制。

LOOP语句可以使某些特定的语句重复执行,实现一个简单的循环。但是LOOP语句本身没有停止循环的语句,必须是遇到LEAVE语句等才能停止循环。

ITERATE语句也是用来跳出循环的语句。但是,ITERATE语句是跳出本次循环,然后直接进入下一次循环。

REPEAT语句是有条件控制的循环语句。当满足特定条件时,就会跳出循环语句。

DELIMITER &&

CREATE PROCEDURE pro_user5(IN bookId INT)

BEGIN

SELECT COUNT(*) INTO @num FROM t_user WHERE id=bookId;

IF @num>0 THEN UPDATE t_user SET userName='java12345' WHERE id=bookId;

ELSE

  INSERT INTO t_user VALUES(NULL,'2312312','2321312');

END IF ;

END

&&

DELIMITER ;

DELIMITER &&

CREATE PROCEDURE pro_user6(IN bookId INT)

BEGIN

SELECT COUNT(*) INTO @num FROM t_user WHERE id=bookId;

CASE @num

  WHEN 1 THEN UPDATE t_user SET userName='java12345' WHERE id=bookId;

  WHEN 2 THEN INSERT INTO t_user VALUES(NULL,'2312312','2321312');

  ELSE INSERT INTO t_user VALUES(NULL,'231231221321312','2321312321312');

END CASE ;

END

&&

DELIMITER ;

DELIMITER &&

CREATE PROCEDURE pro_user7(IN totalNum INT)

BEGIN

  aaa:LOOP

    SET totalNum=totalNum-1;

    IF totalNum=0 THEN LEAVE aaa ;

    ELSE INSERT INTO t_user VALUES(totalNum,'2312312','2321312');

    END IF ;

  END LOOP aaa ;

END

&&

DELIMITER ;

DELIMITER &&

CREATE PROCEDURE pro_user8(IN totalNum INT)

BEGIN

  aaa:LOOP

    SET totalNum=totalNum-1;

    IF totalNum=0 THEN LEAVE aaa ;

    ELSEIF totalNum=3 THEN ITERATE aaa ;

    END IF ;

    INSERT INTO t_user VALUES(totalNum,'2312312','2321312');

  END LOOP aaa ;

END

&&

DELIMITER ;

DELIMITER &&

CREATE PROCEDURE pro_user9(IN totalNum INT)

BEGIN

  REPEAT

    SET totalNum=totalNum-1;

    INSERT INTO t_user VALUES(totalNum,'2312312','2321312');

    UNTIL totalNum=1

  END REPEAT;

END

&&

DELIMITER ;

DELIMITER &&

CREATE PROCEDURE pro_user10(IN totalNum INT)

BEGIN

WHILE totalNum>0 DO

  INSERT INTO t_user VALUES(totalNum,'2312312','2321312');

  SET totalNum=totalNum-1;

END WHILE ;

END

&&

DELIMITER ;

CALL pro_user();

CALL pro_user2();

CALL pro_user3();

CALL pro_user4();

CALL pro_user5(5);

CALL pro_user6(6);

CALL pro_user7(11);

CALL pro_user8(11);

CALL pro_user9(11);

CALL pro_user10(10);

DELETE FROM t_user;

相关文章

  • SQL存储过程和函数(2)

    存储过程和函数中可以使用流程控制来控制语句的执行。MySQL中可以使用IF语句、CASE语句、LOOP语句、LEA...

  • mysql基础(三)

    存储过程和函数 存储过程和函数的引入 存储过程和函数是在数据库中定义一些 SQL 语句的集合,然后直接调用这些存储...

  • MySQL存储过程和存储函数

    一、存储过程 MySQL存储过程存储过程和存储函数参考文章 SQL语句需要先编译然后执行,而存储过程(Stored...

  • 4.存储过程(一)

    1. 存储过程和函数概述 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程和...

  • 存储过程

    4.1 存储过程和函数概述 存储过程和函数是 事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过...

  • SQL存储过程和函数(1)

    定义: 存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL...

  • SQL之存储过程及函数

    存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存...

  • 存储过程与存储函数

    存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存...

  • MySQL学习笔记(6) 存储过程和函数

    1. 背景 本节学习存储过程和函数。 2.知识 2.1 概念 存储过程是多条SQL语句的集合,即一次执行多个语句,...

  • 存储过程与函数

    1、存储过程和函数类似于java中的方法,是一组预先编译好的SQL语句的集合。 2、区别: 3、存储过程的优点:

网友评论

      本文标题:SQL存储过程和函数(2)

      本文链接:https://www.haomeiwen.com/subject/cezxbftx.html