一、IF语句
在PL/SQL中,if, then, else, elsif, endif等关键字用来执行条件逻辑
语法格式:
if 条件1 then
语句1
elsif 条件2 then
语句2
else
语句3
end if;
例1:练习if结构
解:注意下图中的程序:
二、case语句
语法结构:
case 变量
when 值1 then
语句1;
when 值2 then
语句2;
when 值3 then
语句3;
……
when 值n then
语句n;
[else 语句]
end case;
其中[else 语句]可写可不写。
例2:练习case语句
解:注意下图中的程序:
例3:练习case语句
解:输出当前时间是星期几,首先查看当前系统时间是一周的第几天:
其中to_char(sysdate,’d’)是将当前系统时间格式化,只显示天,Oracle由于是老外开发的数据库系统,所以一周第1天是星期日,第2天是星期一,……,第7天是星期六,所以程序如下:
三、循环
1.LOOP循环的语法格式:
loop
循环语句
end loop;
比如:
counter := 0;
loop
counter := counter + 1;
exit when counter = 5;
end loop;
例4:练习loop循环
解:注意下图中的程序:
发现没有输出结果到控制台,那么可用如下方式添加代码:
输出结果:
2.WHILE循环语法格式:
while 条件 loop
语句
end loop
比如:
counter := 0;
while counter < 6 loop
counter := counter +1;
end loop;
例5:练习while循环
解:注意下图中的程序:
3.FOR循环语法格式
for 变量 in [revers]
变量初值..变量循环结束值 loop
语句
end loop;
比如:
for i
in 1..10 loop
dbms_output.put_line(‘i = ‘ + i);
end loop;
例6:练习for循环
解:注意下图中的程序:
例7:展示99乘法表
解:注意下图中的程序:
其中dbms_out.put()是输出语句但是不换行,如果dbms_output.put_line()是输出语句并换行,所以上图中第7行在里层循环结束后打印null,目的实则是换行。
例8:请编写PL/SQL程序,将查询student表中sno,sname放入记录表变量中,并将记录表变量中的数据打印出来。
解:注意下图中的程序:
其中第6行是将记录t_record中的给记录表t_tab,即t_record中有id和name,那么t_tab中也有。