PL/SQL学习笔记(五)

编写控制结构:顺序结构,条件结构,循环结构

一。条件语句:

1。与delphi或者java,或者其他任何语言的条件语句基本一样咯:

单条件:

IF condition THEN

  ......

END IF;

双条件:

IF condition THEN

  ......

ELSE

  ...

END IF;

多条件:

IF condition THEN

   ...

ELSEIF conditon THEN

   ....

ELSEIF conditon THEN

   ....

ELSE

   ....

END IF;

 

举例:

None.gif DECLARE
None.gif  v_sal 
NUMBER ( 6 , 2 );
None.gif  v_id 
NUMBER ;
None.gif
BEGIN
None.gif  v_id:
= ' &id ' ;
None.gif  
SELECT  salary  into  v_sal  FROM  employee
None.gif  
WHERE  id = v_id;
None.gif  
IF  v_sal < 4000   THEN
None.gif     
update  employee  set  salary = (v_sal + 100 where  id = v_id;
None.gif  
ELSE
None.gif     
update  employee  set  salary = (v_sal - 900 where  id = v_id;
None.gif  
END   IF ;
None.gif
END ;
None.gif
None.gif


二。CASE语句:

各种语言的switch ...case语句相同,只不过没有switch关键字。

1。使用单一选择符进行比较:

 

None.gif CASE  selector
None.gif
None.gif  
WHEN  expression1  THEN  dot.gif;
None.gif
None.gif  
WHEN  expression  2   THEN  dot.gif;
None.gif
None.gif  dot.gif
None.gif

 

END CASE;

2。多种条件比较:

 

None.gif CASE
None.gif
None.gif  
WHEN  condition1  THEN  dot.gif;
None.gif
None.gif  
WHEN  condition2  THEN  dot.gif;
None.gif
None.gif  
WHEN  condition3  THEN  dot.gif;
None.gif
END CASE;
None.gif  dot.gif
None.gif

 

 

(三)循环语句:

3种循环:

1。基本循环,至少执行一次:

LOOP

   statement1;

   ...

   EXIT WHEN 退出循环条件;

END LOOP1;

例如:

 

None.gif LOOP
None.gif
None.gif  
insert   into  employee(id,name)  values (i, ' dennis ' );
None.gif
None.gif  i:
= i + 1 ;
None.gif
None.gif  
EXIT   WHEN  i > 10 ;
None.gif
None.gif
END  LOOP;
None.gif

 

2。while循环:

WHILE conditon1 LOOP

   statement1;

   ...

END LOOP;

比如上面的例子改写为:

 

None.gif WHILE  i <= 10  LOOP
None.gif
None.gif   
insert   into  employee(id,name)  values (i, ' dennis ' ); 
None.gif
None.gif   i:
= i + 1 ;
None.gif
None.gif
END  LOOP;
None.gif

 

3。FOR循环,类似于ruby的FOR循环:

FOR counter IN [REVERSE] 下限..上限 LOOP

  statement1;

  ...

END LOOP;

REVERSE参数可选,有的话表示从上限往下限递减。

 

(四)顺序控制语句

PL/SQL也提供了GOTO和NULL语句用于控制语句执行顺序,GOTO语句与JAVA的机制相似,通过label来实现跳转,尽量不要使用。NULL语句不会执行任何操作,它的存在主要是为了提高程序的可读性。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值