八、PL/SQL编程
先来看一个简单的编程:
declare //定义变量的开头关键字declare
--员工编号 //--为PL/SQL的注释开头
var_empno number; //初始化变量var_empno 数据类型number
--工资
var_sal number;
begin //程序开始的关键字begin
--获得员工编号
var_empno:=&var_empno; //&var_empno提示用户输入值 var_empno:=&var_empno把获取到的值赋值给var_empno
--根据编号获得其工资
select sal into var_sal from scott.emp where empno=var_empno; //select 查询的内容 into(赋值给) var_sal ,其中查到的行数要与赋值的个数保持一致!
--判断工资增长后是否超过3200
if var_sal*1.1<=3200 then //分支语句结构:if 判断条件 then end if;
--更新工资
update scott.emp set sal=sal*1.1 where empno=var_empno; //更新对应的值
commit; //提交修改后的数据
end if;
end; //程序结束的关键字end 程序最后要有;号
上面就是一个简单的PL/SQL编程,主要功能:根据用户输入的员工编号进行涨工资10%,但是如果增长后的工资超过3200则不予增长。
13.1 变量与数据类型
declare //定义部分,定义变量
变量名 数据类型 := 初值 ;
变量名 数据类型 default 初值 ;
constant 表示定义的是常量,必须先要初始化它
var_empno number := 45 ; 把45赋值给var_empno
变量的标准数据类型: number数字类型,int整形,pls_integer整数型,char(n)定长字符,varchar2(n)变长字符,date('yyyy-dd-mm hh24:mi;ss')日期型,boolean布尔型。
13.2流程控制语句
dbms_output.put_line('hello world!'); 输出文本信息
begin
...
end
程序开始与结束的标志。
select语句赋值给变量语法:
select <查询的内容> into(赋值给) <变量> ;
其中查到的行数要与赋值的个数保持一致!
条件语句
if <表达式> then
语句块;
end if;
//if else结构
if <表达式> then
语句块1;
else
语句块2;
end if;
//if elseif else 结构
if <表达式1> then
语句块1;
elsif <表达式2> then
语句块2;
else
语句块3;
end if;
case语句
case <表达式>
when <表达式1> then 语句块1;
when <表达式2> then 语句块2;
……
when <表达式n> then 语句块n;
[ else 语句块 n+1 ]
end ;
循环语句
loop
循环体;
exit when 循环退出条件
end loop;
while 循环条件
loop
循环体;
end loop;
for 循环控制变量 in [reverse] 循环下限 .. 循环上限
loop
循环体;
end loop
for循环展示
declare
sum_num number := 0; //sum_number赋值为0
begin //程序开始
for i in 1..100 //for循环 i i从1到100
loop //循环标志
sum_num := sum_num + i; //循环体
end loop; //结束循环
dbms_output.put_line(sum_num); //输出结果
end; //结束标志
Comments NOTHING