PL/SQL学习笔记(五)
程序员文章站
2024-01-01 23:48:16
...
编写控制结构:顺序结构,条件结构,循环结构
一。条件语句:
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;
举例:
DECLARE
v_sal NUMBER ( 6 , 2 );
v_id NUMBER ;
BEGIN
v_id: = ' &id ' ;
SELECT salary into v_sal FROM employee
WHERE id = v_id;
IF v_sal < 4000 THEN
update employee set salary = (v_sal + 100 ) where id = v_id;
ELSE
update employee set salary = (v_sal - 900 ) where id = v_id;
END IF ;
END ;
v_sal NUMBER ( 6 , 2 );
v_id NUMBER ;
BEGIN
v_id: = ' &id ' ;
SELECT salary into v_sal FROM employee
WHERE id = v_id;
IF v_sal < 4000 THEN
update employee set salary = (v_sal + 100 ) where id = v_id;
ELSE
update employee set salary = (v_sal - 900 ) where id = v_id;
END IF ;
END ;
二。CASE语句:
各种语言的switch ...case语句相同,只不过没有switch关键字。
1。使用单一选择符进行比较:
CASE
selector
WHEN expression1 THEN ;
WHEN expression 2 THEN ;
WHEN expression1 THEN ;
WHEN expression 2 THEN ;
END CASE;
2。多种条件比较:
CASE
WHEN condition1 THEN ;
WHEN condition2 THEN ;
WHEN condition3 THEN ;
END CASE;
WHEN condition1 THEN ;
WHEN condition2 THEN ;
WHEN condition3 THEN ;
END CASE;
(三)循环语句:
3种循环:
1。基本循环,至少执行一次:
LOOP
statement1;
...
EXIT WHEN 退出循环条件;
END LOOP1;
例如:
LOOP
insert into employee(id,name) values (i, ' dennis ' );
i: = i + 1 ;
EXIT WHEN i > 10 ;
END LOOP;
insert into employee(id,name) values (i, ' dennis ' );
i: = i + 1 ;
EXIT WHEN i > 10 ;
END LOOP;
2。while循环:
WHILE conditon1 LOOP
statement1;
...
END LOOP;
比如上面的例子改写为:
WHILE
i
<=
10
LOOP
insert into employee(id,name) values (i, ' dennis ' );
i: = i + 1 ;
END LOOP;
insert into employee(id,name) values (i, ' dennis ' );
i: = i + 1 ;
END LOOP;
3。FOR循环,类似于ruby的FOR循环:
FOR counter IN [REVERSE] 下限..上限 LOOP
statement1;
...
END LOOP;
REVERSE参数可选,有的话表示从上限往下限递减。
(四)顺序控制语句
PL/SQL也提供了GOTO和NULL语句用于控制语句执行顺序,GOTO语句与JAVA的机制相似,通过label来实现跳转,尽量不要使用。NULL语句不会执行任何操作,它的存在主要是为了提高程序的可读性。
推荐阅读
-
PL/SQL学习笔记(五)
-
Python学习笔记(五)
-
[C语言学习笔记五]复合语句和操作符的区分
-
韩顺平_PHP软件工程师玩转算法公开课(第一季)01_算法重要性_五子棋算法_汉诺塔_回溯算法_学习笔记_源代码图解_PPT文档整理
-
ASP.NET学习笔记(五)-全球化部署,网站发布方法,AJAX使用,水晶报表使用,DropDownList,CheckBox全选
-
SqlServer 2005 T-SQL Query 学习笔记(4)
-
openCV学习笔记(五):滤波的实现
-
韩顺平_PHP软件工程师玩转算法公开课(第一季)01_算法重要性_五子棋算法_汉诺塔_回溯算法_学习笔记_源代码图解_PPT文档整理
-
sql注入学习笔记(4)--sqlmap注入心得
-
ES6学习笔记(五)扩展运算符和rest参数