收藏 分销(赏)

Oracle SQL&PLSQL课件:第18章 控制结构.ppt

上传人:可**** 文档编号:7907013 上传时间:2025-01-26 格式:PPT 页数:26 大小:212KB
下载 相关 举报
Oracle SQL&PLSQL课件:第18章 控制结构.ppt_第1页
第1页 / 共26页
Oracle SQL&PLSQL课件:第18章 控制结构.ppt_第2页
第2页 / 共26页
Oracle SQL&PLSQL课件:第18章 控制结构.ppt_第3页
第3页 / 共26页
Oracle SQL&PLSQL课件:第18章 控制结构.ppt_第4页
第4页 / 共26页
Oracle SQL&PLSQL课件:第18章 控制结构.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Oracle SQL&PL/SQL,第,18,章,控制结构,了解控制结构的用途和类型,识别并构造不同的循环语句,使用嵌套循环和标签控制块的流程,本章要点,控制执行部分的流程,使用,IF,语句和循环控制结构改变块的逻辑流程,IF,语句:,IF-THEN-END IF,IF-THEN-ELSE-END IF,IF-THEN-ELSIF-END IF,IF,语句,语法,简单的,IF,语句:,将员工名为,Osborne,的,manager ID,设为22,IF v_,ename,=OSBORNE THEN,v_mg

2、r:=22;,END IF;,IF,condition,THEN,statements,;,ELSIF,condition,THEN,statements,;,ELSE,statements,;,END IF;,简单的,IF,语句,举例:,为,last name,是,Miller,的员工设定新信息:工作是,Salesman,;所在部门是35;佣金是当前工资的20%。,.,IF v_,ename,=MILLER THEN,v_job :=SALESMAN;,v_,deptno,:=35;,v_new_,comm,:=,sal,*0.20;,END IF;,.,IF-THEN-ELSE,语句执行流

3、程,IF,条件,TRUE,THEN,动作,(,包含更深层次的,IF,语句,),FALSE,ELSE,动作,(,包含更深层次的,IF,语句,),IF-THEN-ELSE,语句,举例:,如果预定日期与装运日期相差5天,则将,v_ship_flag,设为,Acceptable.,.,IF v_,shipdate,-v_,orderdate,100 THEN,v_start:=2*v_start;,ELSIF v_start=50 THEN,v_start:=.5*v_start;,ELSE,v_start:=.1*v_start;,END IF;,.,创建逻辑条件,使用,IS NULL,操作符处理,

4、null,变量。,任何包含空值的算术表达式结果均为空值。,可把空变量当作空字符串来连接表达式。,逻辑表,使用比较运算符创建一个简单的布尔条件。,NOT,TRUE,FALSE,NULL,OR,TRUE,FALSE,NULL,TRUE,FALSE,NULL,FALSE,TRUE,NULL,AND,TRUE,FALSE,NULL,TRUE,FALSE,NULL,TRUE,NULL,NULL,NULL,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,NULL,NULL,NULL,布尔条件,V_FLAG,的各种可能值:,V_REO

5、RDER_FLAG,V_AVAILABLE_FLAG,V_FLAG,TRUETRUE,TRUEFALSE,NULLTRUE,NULLFALSE,v_flag:=v_reorder_flag AND v_available_flag;,TRUE,FALSE,NULL,FALSE,CASE,语句,CASE,语句可以根据条件从多个执行分支中选择相应的执行动作,并能返回一个值。,语法:,CASE selector,WHEN expression1 THEN result1,WHEN expression2 THEN result2.,WHEN,expressionN,THEN,resultN,ELSE

6、,resultN,+1;,END;,CASE,语句,SET SERVEROUTPUT ON,DEFINE p_grade=a,DECLARE,v_grade CHAR(1):=UPPER(,v_appraisal VARCHAR2(20);,BEGIN,v_appraisal:=,CASE v_grade,WHEN A THEN Excellent,WHEN B THEN Very Good,WHEN C THEN Good,ELSE No such grade,END;,DBMS_OUTPUT.PUT_LINE(Grade:|v_grade|,Appraisal|v_appraisal);,

7、END;/,搜索,CASE,语句,SET SERVEROUTPUT ON,DEFINE p_grade=a,DECLARE,v_grade CHAR(1):=UPPER(,v_appraisal VARCHAR2(20);,BEGIN,v_appraisal:=,CASE,WHEN v_grade=A THEN Excellent,WHEN v_grade=B THEN Very Good,WHEN v_grade=C THEN Good,ELSE No such grade,END;,DBMS_OUTPUT.PUT_LINE(Grade:|v_grade|,Appraisal|v_appra

8、isal);,END;/,循环控制:,LOOP,语句,LOOP,语句多次执行语句序列。,LOOP,语句有三种形式:,Basic loop,无条件的循环,FOR loop,有计数的循环,WHILE loop,有条件的循环,Basic Loop,语法,LOOP,statement1,;,.,EXIT WHEN,condition,;,END LOOP;,where:,condition,is a Boolean variable or,expression(TRUE,FALSE,or NULL);,-,delimiter,-statements,-EXIT statement,-delimiter

9、,Basic Loop,DECLARE,v_,ordid,item.,ordid,%TYPE:=601;,v_counterNUMBER(2):=1;,BEGIN,LOOP,INSERT INTO item(,ordid,itemid,),VALUES(v_,ordid,v_counter);,v_counter:=v_counter+1;,EXIT WHEN v_counter 10;,END LOOP;,END;,举例:,FOR Loop,语法,使用,FOR loop,缩小循环的范围。,FOR,中的,counter,不须声明;,PL/SQL,隐式声明,counter。,如果循环的下界大于上

10、界,循环就不会执行,FOR,counter,in REVERSE,lower_bound.upper_bound,LOOP,statement1,;,statement2,;,.,END LOOP;,FOR Loop,规则:,仅在循环体中引用 计数器,,,在循环体外计数器没被定义。,在表达式中可引用计数器的当前值。,在循环体中不能为计数器赋值。,FOR Loop,举例:,给次序号601插入10行新的,items,DECLARE,v_,ordid,item.,ordid,%TYPE:=601;,BEGIN,FOR i IN 1.10 LOOP,INSERT INTO item(,ordid,it

11、emid,),VALUES(v_,ordid,i);,END LOOP;,END;,WHILE Loop,语法,在,WHILE loop,中,如果条件成立(,TRUE),则重复执行语句序列。,WHILE,condition,LOOP,statement1,;,statement2,;,.,END LOOP;,Condition is,evaluated at the,beginning of,each iteration.,WHILE Loop,举例:,ACCEPT p_new_order PROMPT Enter the order number:,ACCEPT p_items-,PROMP

12、T Enter the number of items in this order:,DECLARE,v_countNUMBER(2):=1;,BEGIN,WHILE v_count,LOOP,v_counter:=v_counter+1;,EXIT WHEN v_counter10;,LOOP,.,EXIT Outer_loop WHEN total_done=YES;,-Leave both loops,EXIT WHEN,inner_,done=YES;,-Leave inner loop only,.,END LOOP,Inner_loop,;,.,END LOOP,Outer_loop,;,END;,使用控制结构改变语句的逻辑流程。,条件控制,(IF,语句),循环控制,:,Basic loop,FOR loop,WHILE loop,EXIT,语句,小结,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服