zoukankan      html  css  js  c++  java
  • oracle数据库(五)

        PL/SQL基础

    PL/SQL语言是对oracle数据库语言的扩展,是一种高性能的基于处理事务的语言,能运行在任何oracle环境中,支持所有数据处理命令,支持所有SQL数据类型和函数,支持所有oracle对象类型。PL/SQL块可以被命名和存储在数据库服务器中,同时也能被其他的PL/SQL程序或者SQL命令调用,所以具有很好的重用性。

    一.PL/SQL程序块的基本结构

    [declare
     --声明变量
     ]
    begin
     --代码逻辑
    [exception
     --异常处理
     ]
    end;

    注意:PL/SQL程序块中的语句用;作为结尾,所以;不会作为执行程序块的符号,使用/表示执行程序块。

    二.常量和变量

    2.1常量被定义后,需要初始化值,而且需要使用constant关键字,语法形式如下:

    constant_name CONSTANT data_type { :=  | DEFAULT} value;

    emp_number CONSTANT NUMBER(4)   := 7900;

    :=不能分开,之间不能有空格。

    2.2变量定义不用进行初始化,不需要CONSTANT关键字,变量值可以被程序修改。

    variable_name data_type { :=  | DEFAULT} value;

    三.%TYPE类型和%ROWTYPE类型

    3.1 如果我们定义变量是无法确定其和数据库中对性的属性类型,我们可以使用%TYPE隐式的变量的数据类型指定为对应列的数据类型。

    %ROWTYPE类型针对表中的一行,使用%ROWTYPE类型定义的变量可以存储表中一行数据。

    3.2PL/SQL记录类型

    PL/SQL记录类型用户用来自定义存储类型,可以存储由一个或者多个字段组成的一行数据。

    创建语法如下:

    TYPE record_name IS RECORD(
    field_name data_type {:= | default} .....
    );

    四.条件选择语句和循环语句

    4.1 IF条件语句

    f 条件 then
     业务逻辑
    [ elsif 条件 then
     业务逻辑
    else
     业务逻辑 ]
    end if;

    4.2无条件循环

    loop
     --循环语句
     [exit when 条件;]
    end loop;

    4.3有条件循环

    while 条件
    loop
    --循环语句
    end loop;

    4.4for循环

    for 变量 in 起始值..终止值
    loop
    --循环语句
    end loop;

    五.游标

    使用select语句返回一个结果集,如果要对结果集中单独的行进行操作,需要使用游标。使用游标的四个步骤为声名游标、打开游标、检索游标、关闭游标。

    1.声名游标,主要定义一个游标名称对应一个select语句,从而可以利用该游标对此查询语句返回的结果集进行单独操作。

    declear

        cursor emp_cursor (dept_num NUMBER :=20)

         is 

        select empno,ename,job,sal

        from emp where deptno =dept_num;

    2.打开游标

    open cursor_name(参数);

    3.检索游标

    fetch cursor_name into variable{.....};

    将查询的数据用定义的变量保存起来。

    4.关闭游标

    close cursor_name;

  • 相关阅读:
    P2602 [ZJOI2010]数字计数
    P2657 [SCOI2009] windy 数
    Gym
    B
    Problem E The League of Sequence Designers
    C. Vladik and fractions
    hdu6069
    hdu 6096
    30道经典面试题,靠它我在一线拿到了20k的前端开发工程师岗位
    【面经分享】互联网寒冬,7面阿里,终获Offer!
  • 原文地址:https://www.cnblogs.com/zzuli/p/9474954.html
Copyright © 2011-2022 走看看