zoukankan      html  css  js  c++  java
  • mysql的三种循环while 、 loop 、repeat与oracle的三种loop的

    -- MySQL中的三中循环 while 、 loop 、repeat 求 1-n 的和


    -- 第一种 while 循环
    -- 求 1-n 的和
    /* while循环语法:
    while 条件 DO
    循环体;
    end while;
    */

    create procedure sum1(a int)
    begin
    declare sum int default 0; -- default 是指定该变量的默认值
    declare i int default 1;
    while i<=a DO -- 循环开始
    set sum=sum+i;
    set i=i+1;
    end while; -- 循环结束
    select sum; -- 输出结果
    end;
    -- 执行存储过程
    call sum1(100);
    -- 删除存储过程
    drop procedure if exists sum1;
    ==============================
    -- 第二种 loop 循环

    /* loop循环语法:
    loop_name:loop
    if 条件 then --满足条件时离开循环
    leave loop_name; -- 和break差不多都是结束语
    end if;
    end loop;
    */
    
    
    create procedure sums(a int)
    begin
            declare sum int default 0;
            declare i int default 1;
            loop_name:loop -- 循环开始
                if i>a then 
                    leave loop_name;  -- 判断条件成立则结束循环  好比java中的 boeak
                end if;
                set sum=sum+i;
                set i=i+1;
            end loop;  -- 循环结束
            select sum; -- 输出结果
    end;
     -- 执行存储过程
    call sums(100);
    -- 删除存储过程
    drop procedure if exists  sums;
    
    

    -- 第三种 repeat 循环
    /*repeat 循环语法
    repeat
    循环体
    until 条件 end repeat;
    */

    create procedure sum55(a int)
    begin
    declare sum int default 0;
    declare i int default 1;
    repeat -- 循环开始
    set sum=sum+i;
    set i=i+1;
    until i>a end repeat; -- 循环结束
    select sum; -- 输出结果
    end;
    
    -- 执行存储过程
    call sum55(100);
    -- 删除存储过程
    drop procedure if exists sum55;

    ================================

    ================================

    Oracle中三种循环

    --1.loop

    Declare
    vcount number := 51;
    begin
    loop
    insert into test (id, name) values (vcount, 'loop');
    vcount := vcount + 1;
    exit when vcount = 61;
    end loop;
    commit;
    end;
    
    select * from test

    --2.while loop

    Declare
    vcount number := 61;
    begin
    while vcount <= 70 loop
    insert into test (id, name) values (vcount, 'loop');
    vcount := vcount + 1;
    end loop;
    commit;
    end;

    --3.for loop

    Declare
    vcount number;
    begin
    for vcount in 71 .. 75 loop
    insert into test (id, name) values (vcount, 'loop');
    end loop;
    commit;
    end;
  • 相关阅读:
    Python学习32天(socket、tcp协议)
    Python学习第31天(异常、异常捕捉)
    Python之旅的第30天(过程记录,选课系统的基本实现)
    Python之旅的第29天(property补充、元类和自定义元类)
    Python之旅的第28天(描述符、类的装饰器)
    Python之旅的第27天(复习、习题实现、__enter__、__exit__)
    Python之旅第26天(__slots__等内置方法、软件开发规范)
    假期第二周
    假期第一周
    第十六周学习进度博客
  • 原文地址:https://www.cnblogs.com/thomasbc/p/15529735.html
Copyright © 2011-2022 走看看