一.if语句
--简单的if...else语句
declare
var_id number(4);
begin
SELECT e.empno into var_id FROM EMP e where e.mgr = 7902;
if var_id > 10 then
/*
dbms_output.put()就是输出的意思,相当于java中System.out.print()
||就是java中的+,拼接的意思
*/
dbms_output.put_line('id大于10 '|| var_id);
else
dbms_output.put_line('id小于10'|| var_id);
end if;
end;
--if...elsif..语句
declare
var_id number(4);
begin
SELECT e.empno into var_id FROM EMP e where e.mgr = 7902;
if var_id > 7369 then
dbms_output.put_line('大于'|| var_id);
elsif var_id < 7369 then
dbms_output.put_line('小于'|| var_id);
else
dbms_output.put_line('等于'|| var_id);
end if;
end;
--嵌套的if和java的嵌套循环类似,只是pl/sql中需要按照if的格式编写
二.case语句
--简单的case语句
declare
var_id number(4);
begin
SELECT e.empno into var_id FROM EMP e where e.mgr = 7902;
case var_id
when 10 then
dbms_output.put_line('id为10');
when 11 then
dbms_output.put_line('id为11');
when 23 then
dbms_output.put_line('id为23');
else
dbms_output.put_line('没有对应的id');
end case;
end;
--探索式case语句,当满足条件时,就直接跳出整个case语句
declare
var_id number(4);
begin
SELECT e.empno into var_id FROM EMP e where e.mgr = 7902;
case
when var_id < 10 then
dbms_output.put_line('id小于10');
when var_id <5000 then
dbms_output.put_line('id小于5000');
when var_id < 8000 then
dbms_output.put_line('id小于8000');
else
dbms_output.put_line('没有对应的id');
end case;
end;
三.loop语句
--用嵌套循环来打印九九乘法表
--①用loop循环
declare
v_i number :=1;
v_j number :=1;
begin
loop
loop
dbms_output.put(v_j||'*'||v_i||'='||v_i*v_j||' ');
v_j := v_j+1;
--退出内层循环
exit when v_j>v_i;
end loop;
v_i := v_i +1;
v_j :=1;
--换行
dbms_output.new_line;
exit when v_i>9;
end loop;
--代码的最后必须要以end 结尾
end;
--②for...lop循环
declare
begin
for i in 1..9 loop
for j in 1..i loop
dbms_output.put(j||'*'||i||'='||i*j||' ');
end loop;
dbms_output.new_line;
end loop;
end;
--③while...lop循环
declare
v_i number :=1;
v_j number :=1;
v_sum number:=0;
begin
/*
while 循环条件 loop
循环体;
end loop;
*/
while v_i<=9 loop
v_j:=1;
while v_j<=v_i loop
v_sum:=v_i*v_j;
dbms_output.put(v_i||'*'||v_j||'='||v_i*v_j||' ');
v_j := v_j+1;
end loop;
dbms_output.new_line;
v_i:=v_i+1;
end loop;
end;
--打印结果为
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81