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;
  • 相关阅读:
    主键、外键和索引的区别
    设置session超时的三种方式
    redis常用操作
    timestamp 转 date 处理后再转timestamp
    fragment在水平/垂直时的应用
    Activity堆栈管理
    ORMLite的使用
    onItemLongClick事件的监听
    Bundle的使用
    有关implicit Intent的使用
  • 原文地址:https://www.cnblogs.com/thomasbc/p/15529735.html
Copyright © 2011-2022 走看看