PL/SQL编程进阶:条件判断与循环语句的实战

在这里插入图片描述

1. PL/SQL中的流控制

PL/SQL提供了丰富的流控制语句,用来对程序的执行流程进行控制。通过使用这些流控制语句,可以编写更复杂的PL/SQL块。流控制语句主要分为两类:条件判断语句和循环语句。

2. IF语句
  • 基本介绍
    IF语句是一种条件判断语句,它根据条件判断的结果执行不同的代码。最简单的IF语句格式为:

    IF 条件 THEN
        代码
    END IF;
    
  • 举例
    假设要判断一个数是否为正数,如果是正数则输出“该数是正数”:

    DECLARE
        num INTEGER := 10;
    BEGIN
        IF num > 0 THEN
            dbms_output.put_line('该数是正数');
        END IF;
    END;
    /
    
  • IF-ELSE语句
    如果条件成立,则执行指定的代码;否则,执行IF语句后面的代码。格式如下:

    IF 条件 THEN
        代码1
    ELSE
        代码2
    END IF;
    

    举例
    判断一个数是否为正数,如果是正数输出“该数是正数”,否则输出“该数是负数或零”:

    DECLARE
        num INTEGER := -5;
    BEGIN
        IF num > 0 THEN
            dbms_output.put_line('该数是正数');
        ELSE
            dbms_output.put_line('该数是负数或零');
        END IF;
    END;
    /
    
  • IF-ELSIF-ELSE语句
    在更复杂的情况下,要先后判断多个条件。格式如下:

    IF 条件1 THEN
        代码1
    ELSIF 条件2 THEN
        代码2
    ELSE
        代码n
    END IF;
    

    举例
    判断一个数的正负性,如果是正数输出“正数”,如果是负数输出“负数”,如果是零输出“零”:

    DECLARE
        num INTEGER := 0;
    BEGIN
        IF num > 0 THEN
            dbms_output.put_line('正数');
        ELSIF num < 0 THEN
            dbms_output.put_line('负数');
        ELSE
            dbms_output.put_line('零');
        END IF;
    END;
    /
    
  • 条件的联合
    可以通过AND和OR运算符连接多个条件进行判断。

    • AND运算:所有条件都成立时,整个条件判断才成立。
    • OR运算:只要有一个条件成立,整个条件判断就成立。

    举例
    判断一个数是否在10到20之间(包括10和20),如果是则输出“该数在范围内”,否则输出“该数不在范围内”:

    DECLARE
        num INTEGER := 15;
    BEGIN
        IF num >= 10 AND num <= 20 THEN
            dbms_output.put_line('该数在范围内');
        ELSE
            dbms_output.put_line('该数不在范围内');
        END IF;
    END;
    /
    
3. LOOP语句
  • 基本介绍
    LOOP是一种循环语句,它使一部分代码反复执行。LOOP语句的基本格式为:

    LOOP
        循环体
    END LOOP;
    
  • EXIT语句
    EXIT语句用于退出LOOP循环,一般与IF语句结合使用。

    举例
    输出1到10的数字:

    DECLARE
        i INTEGER := 1;
    BEGIN
        LOOP
            dbms_output.put_line(i);
            i := i + 1;
            EXIT WHEN i > 10;
        END LOOP;
    END;
    /
    
  • 复杂示例
    计算1+2+3+…+500的值,当和大于500时停止,求“累计算大于500的最后一个整数”:

    SET SERVEROUTPUT ON;
    DECLARE
        i INTEGER := 0;
        total INTEGER := 0;
    BEGIN
        LOOP
            i := i + 1;
            total := total + i;
            EXIT WHEN total > 500;
        END LOOP;
        dbms_output.put_line('累计算大于500的最后一个整数为:' || i);
    END;
    /
    

非常感谢您读到这里!如果您觉得这篇文章对您有帮助,可以关注一下博主。关注后,您将第一时间获得最新的AI、云计算、运维(Linux、数据库,容器等)技术,以及更多实用的技能干货。


无论你是AI新手还是AI专家,学习最前沿的AI技术,AI创富俱乐部你值得拥有!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周同学的技术栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值