zoukankan      html  css  js  c++  java
  • MySQL学习笔记:while循环

      思考:while循环是否只能使用在存储过程或者存储函数之中,不能直接在查询语句中使用?

      ———— 循环一般在存储过程和存储函数中使用。


      直接放几个例子:

      例一:

      1.创建存储过程

    DELIMITER $$
    CREATE PROCEDURE test_while_001(IN in_count INT) # 创建存储过程 学习while循环的用法
    BEGIN
        DECLARE COUNT INT DEFAULT 0;
        DECLARE SUM INT DEFAULT 0;
        WHILE COUNT < in_count DO
            SET SUM = SUM + COUNT;
            SET COUNT = COUNT + 1;
        END WHILE;
        SELECT SUM;
    END $$
    DELIMITER ;

      2.调用存储过程

    CALL test_while_001(10); # 45 输出

      3.删除存储过程

    DROP PROCEDURE test_while_001;

     

    例二:

      1.创建函数

    DELIMITER $$
    CREATE FUNCTION my_test_function(quantity INT(10)) RETURNS INT(10) # 创建函数 学习while循环的用法
    BEGIN
        WHILE quantity MOD 12 > 0 DO
            SET quantity = quantity + 1;
        END WHILE;
        RETURN quantity;
    END $$
    DELIMITER ;

      注意:创建函数之前必须更改系统设置 否则无法创建函数

    SET GLOBAL log_bin_trust_function_creators=TRUE;

      2.调用函数

    SELECT my_test_function(10);
    SELECT my_test_function(24);
    SELECT my_test_function(222);

      3.删除函数

    DROP FUNCTION my_test_function;

      

      例三:

      1.如果存在,则删除

    DROP PROCEDURE IF EXISTS u_head_and_low_pro;

      2.创建存储过程

    DELIMITER $$
    CREATE PROCEDURE u_head_and_low_pro()
    BEGIN
        DECLARE n INT DEFAULT 10;
        SET n = n - 1;
        WHILE n > 0 DO
            SELECT n;
            SET n = n - 1;
        END WHILE;
    END $$
    DELIMITER ;

      3.调用存储过程

    CALL u_head_and_low_pro();

      4.删除存储过程

    DROP PROCEDURE u_head_and_low_pro;

      注:不依赖于任何数据库表,完整展示变量、while语句、存储过程的用法。


      例四:

    # 创建存储过程
    DELIMITER $$
    CREATE PROCEDURE test_while() BEGIN DECLARE SUM INT DEFAULT 0; DECLARE t INT DEFAULT 5; WHILE t > 0 DO SET SUM = SUM + t; SET t = t - 1; END WHILE; SELECT SUM; END $$ DELIMITER ; # 调用存储过程 CALL test_while(); # 15 # 删除 DROP PROCEDURE test_while;

    END 2018-05-22 13:11:34

  • 相关阅读:
    How to get the IIS root path in other application.
    Web.UI.Controls与页面事件的冲突问题。
    分析在服务器上设置计时器的问题。
    首次感觉我的电脑过时了。。。。。。。。郁闷。
    Google Logos
    2005年的最后一天
    TreeView的几个使用小技
    浅淡反射问题
    The restricted headers are:
    在服务器上用Timer遇到的小问题。。。。
  • 原文地址:https://www.cnblogs.com/hider/p/9071549.html
Copyright © 2011-2022 走看看