Oracle PL/SQL语句块的循环(for、whlie、loop)和判断(if)
一、PL/SQL语句块的循环
1.for循环
--for循环
declare
i int;
j int;
begin
for i in 1..9 loop --i IN 1..9的意思是循环从1开始到9结束
for j in 1..i loop
Dbms_Output.put(i||*||j||=||i*j); --将内容写到内存,等到put_line或new_line时一起输出
dbms_output.put( );
end loop;
dbms_output.put_line(); --输出并换行
--dbms_output.new_line; --作为一行的结束,可以理解为写入buffer时的换行符(换行输出)
end loop;
end;
2.while循环
--while循环
declare
i int:=1;
j int:=1;
begin
while i<=9 loop
j:=1;
while j<=i loop
Dbms_Output.put(i||*||j||=||i*j);
dbms_output.put( );
j:=j+1;
end loop;
dbms_output.new_line;
i:=i+1;
end loop;
end;
3.loop循环
--loop循环
declare
i int:=1;
j int:=1;
begin
loop
loop
Dbms_Output.put(i||*||j||=||i*j);
dbms_output.put( );
j:=j+1;
exit when j>i; --条件成立就结束子循环
--dbms_output.put(执行exit后 );
end loop;
dbms_output.put_line();
i:=i+1;
j:=1;
exit when i>9;
end loop;
end;
二、PL/SQL语句块的判断(多层If条件判断)
--打开屏幕输出开关,这个是sqlplus命令,在plsql developer里没有,前往cmd窗口连接数据库执行
set serveroutput on;
--接受键盘输入,变量num:是一个地址值,在该地址上保存了输入的值
accept num prompt 请输入一个数字;
declare
--定义变量保存输入的数字
pnum number := #
begin
if pnum < 18 then
dbms_output.put_line(未成年人);
elsif pnum = 18 then
dbms_output.put_line(刚成年);
else
dbms_output.put_line(已成年);
end if;
end;
--斜杠在cmd模式下结束sql语句
/
另外在介绍下CASE-WHEN分支判断,该分支判断和java的switch-case用法大致相同。 先创建一个学生表T_STU。
create table t_stu( stuid number(10) primary key, stuname varchar2(20) not null, stusex varchar2(2) default 男 check(stusex in(男,女)), stuage number(10) );
建完表后插入几行数据进行测试,输入以下代码
--1.搜索CASE表达式,使用条件确定返回值 SELECT STUNAME, CASE STUAGE WHEN 18 THEN 刚成年 WHEN 19 THEN 成年满一年 WHEN 20 THEN 弱冠 ELSE 年龄不详 END STUAGE, STUSEX FROM T_STU
--2.带判断条件CASE表达式 SELECT STUNAME, CASE WHEN STUAGE<18 THEN 未成年 WHEN STUAGE=18 THEN 刚成年 WHEN STUAGE>18 THEN 已成年 ELSE 年龄不详 END STUAGE, STUSEX FROM T_STU`
参考
1.https://www.cnblogs.com/ChineseIntelligentLanguage/p/6441317.html 2.https://blog..net/wanlin77/article/details/80633616
