Oracle PL/SQL基本语法:
declare(可选,声明变量或光标)
begin(必需,从此处开始执行语句)
exception(异常)
end;(必需,从此处结束分号不能省略)
PL/SQL的两种赋值方式:
1. :=
2. into
例子 一:(基本类型变量)
declare
pname varchar2(20);
page number(10);
pdate date;
begin
pname := ‘kin’;
page :=20;
pdate := sysdate;
dbms_output.put_line(pname);
dbms_output.put_line(page);
dbms_output.put_line(pdate);
dbms_output.put_line(pdate+1);
end;
注意:
1.dbms_output.put_line();//输出数据
2.pdate+1;//加一表示明天
例子 二:(引用型变量)查询编号为7839的员工姓名和薪资
declare
pname emp.ename%type; //pname变量的类型为emp表格中ename字段的类型
psal emp.sal%type;
begin
select ename,sal into pname,psal from emp where empno=7839;
dbms_output.put_line(pname||’薪水是’||psal);
end;
注意:
1.into前面的变量顺序和后面的变量顺序一定要一直;
2.||为连接符
例子三:(记录型变量)查询编号为7839的员工姓名和薪资
declare
emp_rec emp%rowtype; //emp_rec变量类型为emp表格一行内容,即为一个数组
begin
select * into emp_rec from emp where empno=7839;
dbms_output.put_line(emp_rec.ename||’薪水是’||emp_rec.sal);
end;
PL/SQL的面向过程语言:
IF判断语句:(判断用户从键盘输入的数字)
if 判断条件… then 执行语句…elsif 判断条件…then 执行语句2…else 以上条件都不满足执行…end if;、
–接受键盘上输入的数字,num表示一个地址值,在该地址上保存输入的值
accept num prompt’请输入一个数字:’;
declare
–定义变量并保存从键盘上输入的值
pnum number := #
begin
if pnum = 0 then dbms_output.put_line(‘数字为0’);
elsif pnum =1 then dbms_output.put_line(‘数字为1’);
elsif pnum = 2 then dbms_output.put_line(‘数字为2’);
else dbms_output.put_line(‘其他数字’);
end if;
end;
注意:
pnum =1 表示判断的句子,不是赋值的意思。
while循环语句:(循环输出1-10)
while 判断条件 loop 循环体 end loop;
例子:
declare
–给变量初始化值
pnum number := 1;
begin
while pnum <=10 loop
dbms_output.put_line(pnum);
–自增
pnum := pnum+1;
end loop;
end;
注意:
pnum :=pnum+1表示每循环一次加1,即自增。不能pnum++;这样写
loop循环:(推荐使用)(循环输出1-10)
loop exit when 循环条件;循环体;end loop;
例子 一:
declare
–给变量初始化值
pnum number := 1;
begin
loop exit when pnum >10;
dbms_output.put_line(pnum);
–自增
pnum := pnum+1;
end loop;
end;
例子二:(循环输出20-10)
declare
–给变量初始化值
pnum number := 20;
begin
loop exit when pnum <10;
dbms_output.put_line(pnum);
–自增
pnum := pnum-1;
end loop;
end;
注意:
loop循环是:符合条件退出循环;
while循环是:符合条件执行循环体。
for循环:(循环输出1-10)
for 变量 in 变量范围 (必须是连续的区间) loop 循环体;end loop;
例子:
declare
–声明变量
pnum number;
begin
for pnum in 1..10 loop
dbms_output.put_line(pnum);
end loop;
end;
注意:
in后面是变量的范围必须是连续的区间。(并且只能是升序,降序打印不出数据)