oracle PL/SQL程序块

目录

PL/SQL简介

PL/SQL优点

PL/SQL块简介

PL/SQL的过程数据显示(输出)以及变量定义和赋值

✨赋值方法

✨变量和常量

✨属性类型:

PL/SQL的控制语句

✨条件控制:

    ️if语句

    ️case语句

✨循环控制:

   ️ loop循环语法

    ️while循环语法

    ️for循环语法


PL/SQL简介


    PL/SQL是ORACLE对标准数据库语言的扩展
    PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
    PL/SQL 是对 SQL 的扩展
    支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构
    可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑
    与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性


PL/SQL优点


    1.支持 SQL,在 PL/SQL 中可以使用:
        数据操纵命令
        事务控制命令
        游标控制
        SQL 函数和 SQL 运算符
    2.可移植性,可运行在任何操作系统和平台上的Oralce 数据库
    3.更佳的性能,PL/SQL 经过编译执行
    4.与 SQL 紧密集成,简化数据处理。
        支持所有 SQL 数据类型
        支持 NULL 值
        支持 %TYPE 和 %ROWTYPE 属性类型
        PL/SQL中的代码自动形成一个事物,出现异常就会一起回滚
    5.安全性,可以通过存储过程限制用户对数据的访问


PL/SQL块简介


    PL/SQL分为三个部分,声明部分、可执行部分和异常处理部分
        DECLARE
             说明部分;
        BEGIN    /*  块开始标记  */
             执行部分;
        EXCEPTION
             异常处理部分;
        END;    /*  块结束标记  */

    说明:
    (1)说明部分:说明部分是可选的。由关键字DECLARE引出,用于定义常量、变量、游标、异常、复杂数据类型。在编写程序时,程序块中引用的数据对象和程序单元应遵循先定义后使用的原则。
    (2)执行部分:执行部分是必需的。由关键字BEGIN开始,至END结束。PL/SQL程序块至少包含一条可执行语句,也可以嵌套其他PL/SQL程序块。
    (3)异常处理部分:异常处理部分是可选的。由关键字EXCEPTION开始。当执行部分发生错误时,将会引起异常。这时,正常的执行将被停止且转移到异常程序处理。异常处理完成后,将结束对应PL/SQL块的执行。

PL/SQL的过程数据显示(输出)以及变量定义和赋值


        DBMS_OUTPUT是一个函数包
        PUT_LINE是一个函数,用于在客户端输出一行文本
        其它函数
        DBMS_OUTPUT.PUT(‘字符’):向一行中添加字符
        DBMS_OUTPUT.NEW_LINE():输出一个新行

        dbms_output.put_line('aa');    //输出字符串

✨赋值方法


    直接赋值
    通过键盘赋值  b:=&b
    通过select into 给变量赋值
    select name into name1 from 表名 where name='小王'


✨变量和常量


    PL/SQL 块中可以使用变量和常量
    在声明部分声明,使用前必须先声明
    声明时必须指定数据类型,每行声明一个标识符
    在可执行部分的 SQL 语句和过程语句中使用

    声明变量: 变量名 数据类型;

    声明常量:常量名 constant 数据类型:=初始值;

✨属性类型:


    用于引用数据库列的数据类型,以及表示表中一行的记录类型
    属性类型有两种:
        %TYPE  -  引用变量和数据库列的数据类型
        %ROWTYPE  -  提供表示表中一行的记录类型
    使用属性类型的优点:
        不需要知道被引用的表列的具体类型
        如果被引用对象的数据类型发生改变,PL/SQL 变量的数据类型也随之改变


PL/SQL的控制语句


✨条件控制:


    ️if语句

        单分支:
        if 条件表达式 then
            语句块;
        end if;    --end if要分开写;


        双分支:
            if 条件表达式 then
            语句块1;
        else
            语句块2;
        end if;

        多分支:
        if 条件1 then
            语句块1;
        elsif 条件2 then
            语句块2;
        elsif 条件3 then
            语句块3;
        ....
        else
            语句块n+1;
        end if;

        嵌套if
        if 条件1 then
            if 条件1-2 then
                语句块1;
            else
                语句块2;
            end if;
        else
            语句块3;
        end if;


    ️case语句


        case 变量
            when 变量值1 then
        语句1;
            when 变量值2 then
        语句2;
            when 变量值3 then
        语句3;
            else 语句4;
        end case;


✨循环控制:


   ️ loop循环语法:


        loop
            exit when 条件表达式;
            执行语句;
        end loop;

    ️while循环语法:


        while 循环条件
        loop
            执行语句;
        end loop;

    ️for循环语法:


        for 变量 in 起始值..结束值
        loop
            执行语句;
        end loop;

    

你可能感兴趣的:(oracle,oracle)