PL/SQL 基础

       PL/SQL的基本单位,区段。组成:声明部分、可运行部分、排除-构建 部分。

       PL/SQL的特点:时块结构语言。主要包括:存储过程、函数、匿名三部分。

       在运行PL/SQL时,不是逐条执行的,而是作为一组SQL语句整体执行。

       PL/SQL程序:有定义部分(DECLARE)、执行部分(BEGIN    END)和异常部分(EXCEPTION)组成。

                定义部分:用于定义常量、变量、游标、异常、复合数据类型,一般在程序中使用的变量都要在这里声明。

                执行部分:用于实现应用模块的功能。该部分包含了要执行的SQL语句块。

                异常部分:用于处理在执行SQL过程中产生的异常。

      示例:

DECLARE
	
	BEGIN
		
		EXCEPTION
		
	END;

常用数据类型:

         变量:

        在声明部分声明:

语法:

         variable_name datatype not null [default_value:=value]

         常量声明如下:

         variable_name CONSTANT datatype not null [default_value:=value]


         运算符:

条件控制语句:

        IF conditons THEN statement1
        ELSIF conditions THEN statement2
        ELSE condition THEN statement3

 小示例:

DECLARE
	mynumber NUMBER(3) := 100;
BEGIN
	IF  mynumber = 100
	THEN
		mynumber := mynumber + 15;
		dbms_output.put_line('输出结果为:' || mynumber);
	ELSIF mynumber = 115
	THEN
		dbms_output.put_line('输出结果为:' || mynumber);
	END IF;
END;
-----------------------------------------------------------------------
输出结果为:115

          case when then 条件控制语句:

--case when then 的第1种用法
DECLARE
    mynumber NUMBER(3) := 200;
BEGIN
    CASE  mynumber 
    WHEN 100
    THEN
        mynumber := mynumber + 15;
        dbms_output.put_line('输出结果为:' || mynumber);
    WHEN 115
    THEN
        dbms_output.put_line('输出结果为:' || mynumber);
        ELSE
        dbms_output.put_line('输出结果为:无符合条件结果' );
    END CASE;
END;
---------------------------------------------------------------------------
输出结果为:无符合条件结果



--case when then 的第2种用法
DECLARE
    mynumber NUMBER(3) := 200;
BEGIN
    CASE 
    WHEN  mynumber= 100
    THEN
        mynumber := mynumber + 15;
        dbms_output.put_line('输出结果为:' || mynumber);
    WHEN  mynumber= 115
    THEN
        dbms_output.put_line('输出结果为:' || mynumber);
        ELSE
        dbms_output.put_line('输出结果为:无符合条件结果' );
    END CASE;
END;
----------------------------------------------------------------
输出结果为:无符合条件结果

LOOP 循环语句:

DECLARE
    mynumber NUMBER(3) := 200;
BEGIN
    LOOP
        EXIT WHEN mynumber >900 ;
        mynumber := mynumber + 50;
        dbms_output.put_line(mynumber);
    END LOOP;
END;

---------------------------------------------
250
300
350
400
450
500
550
600
650
700
750
800
850
900
950
WHILE循环:

DECLARE
    mynumber NUMBER(3) := 200;
BEGIN
    WHILE  mynumber <900 
    LOOP        
        mynumber := mynumber + 50;
        dbms_output.put_line(mynumber);
    END LOOP;
END;

---------------------------------------------
250
300
350
400
450
500
550
600
650
700
750
800
850
900
950

FOR 循环:

DECLARE
    mynumber NUMBER(18,8); 
    secOND_number NUMBER(18,8):=1.5;
    str CONSTANT VARCHAR2(100) := '输出结果:';
BEGIN
    FOR mynumber IN 1..10 LOOP
      secOND_number := secOND_number*mynumber;    
        dbms_output.put_line(str || secOND_number);
    END LOOP;
END;

---------------------------------------------
输出结果:1.5
输出结果:3
输出结果:9
输出结果:36
输出结果:180
输出结果:1080
输出结果:7560
输出结果:60480
输出结果:544320
输出结果:5443200



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值