plsql基础——流程控制

条件控制

  • if …… then…… end if;

  • if ……then ……

​ else

​ ……

​ end if;

  • if ……then……

    elsif ……then……

    ……

    else……

    end if;

declare
v_empno number(10) :=&请输入员工编号;
v_sal emp.sal%type;
v_job emp.job%type;
begin
select job into v_job from emp where empno=v_empno;
 
 if v_job='CLERK' 
 THEN
      UPDATE EMP SET SAL=SAL*4 where empno=v_empno;
 elsif v_job='SALESMAN'
 THEN
      update emp set sal=sal*3 where empno=v_empno;
 else 
 	  update emp set sal=sal*2 where empno=v_empno;
 end if;
  
 end;
  • 所有IF类型的条件语句,最后要加上END IF;
  • 所有CASE类型的条件语句,最后要加上END CASE;
  • 如果判断条件很多,后一个条件被判定的前提是前一个条件结果为false ;
  • ELSE部分可根据实际需求决定是否书写;
  • CASE语句可以在CASE后写选择器,在WHEN后写常量,通过比较选择器与常量,判断结果是true还是false;
CASE selector 
   WHEN 'value1' THEN S1;--when 后面不能写条件判断 
   WHEN 'value2' THEN S2; 
   WHEN 'value3' THEN S3; 
   ... 
   ELSE Sn;  -- default case 
END CASE;
-也可以和oracle中的case when 一样用
CASE WHEN 条件1 THEN S1;
     WHEN 条件2 THEN S2; 
     WHEN 条件3 THEN S3; 
     ... 
     ELSE Sn;  -- default case 
END CASE;
  • 条件语句中可以继续嵌套条件语句,但不建议嵌套太多层;
  • 条件语句的最后和条件语句中的执行部分,最后都要按要求添加英文分号。

循环控制

  • 循环必须有退出条件
  • 考察先执行后判断还是先判断后执行
  • 考察判定条件
  • 循环语句的执行顺序非常重要
  • 考察循环变量
  • 循环条件最好不要用等号

LOOP循环

begin
loop
循环语句
exit when 条件	--符合条件退出循环
end loop;
end;
  • exit when 只要在循环体里面即可,位置不做要求
  • exit when 判定失败后,后面的语句不会执行,接着运行end loop

while循环

while  条件--不符合条件,不进入循环
loop
end loop;

for循环

  • i无需声明
  • for循环是按次数条件退出循环
  • 循环变量不进入循环
for i in 1..10--从小到大
loop
循环语句
end loop;

for i in reverse 1..10 --从大到小
loop
循环语句
end loop;

  • for 后面的u不需要声明
  • u是结果集的虚拟表的一条记录,不能直接作为打印的参数
  • for循环会遍历结果集的所有记录,然后结束循环
  • 这种方式可以定位到结果集中的任意一个数据
  • i的类型可以是数字,虚拟表
begin
for u in (select empno,j from emp  )--虚拟表
--在表中的别名,下面打印的时候可以直接用
--且定义别名后下面只能使用
--in后面的表中无信息z
loop  
 dbms_output.put_line (u.empno);由虚拟表定位到字段得到结果集
end loop;
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值