1、特点:
数据操纵命令
事务控制命令
游标控制
SQL函数和 SQL运算符
2、部分:
declare
begin
end;
3、数据类型:
数值类型:number(len,len)
字符串类型:varchar2(len)
char(len)
日期类型:date
%type类型
emp.empno%type=varchar2(10)
record类型:记录类型
is record(变量1 数据类型,
变量2 数据类型,……)
:= 在plsql中是赋值的符号
4、流程控制语句
条件控制:
(1)if语句
【1】if 条件表达式 then
plsql语句
end if;
【2】if 条件表达式 then
plsql语句;
else
plsql语句;
end if;
【3】if 条件表达式 then
plsql语句;
elsif 条件表达式 then
else
plsql语句;
end if;
2、case 语句
【1】case
when 条件表达式1 then
值1;
when 条件表达式2 then
值2;
……
else
默认值;
end case;
【2】case 条件表达式是
when 值1 then
plsql语句1;
when 值2 then
plsql语句2;
……
else
plsql语句;
end case;
循环控制语句
exit when 退出循环关键词
continue 退出本次循环,但不结束循环
return 退出程序,结束整个循环程序
1、loop循环
loop
plsql语句;
exit when 退出循环条件;
循环控制语句;
end loop;
declare
a number(10);
begin
a:=1;
loop
dbms_output.put_line(' '||a);
exit when a=10;
a=a+1;
end loop;
dbms_output.put_line('a='||a);
end;
2、while
while 循环条件 loop
循环体语句;
循环控制语句;
end loop;
declare
v_n number(10);
begin
v_n:=1;
while v_n <10 loop
dbms_output.put_line(''||v_n);
v_n:=v_n+1;
end loop;
dbms_output.put_line('v_n='||v_n);
end;
3、for循环
for 循环变量 in [reverse] 集合|查询语句|游标变量 loop
循环体语句;
end loop;
begin
--for循环语句
for i in 1..9 loop
--循环体语句
dbms_output.put_line(''||i);
end loop;
end;
for循环查询结果集
--循环打印dept表中的部门信息
begin
--for循环语句,循环变量v_dept是一个记录类型,查询语句是*,dept%rowtype
for v_dept in (select * from dept) loop
--循环体语句,打印部门信息
dbms_output.put_line(v_dept.deptno||','||v_dept.dname||','||v_dept.loc);
end loop;
end;
4、select into 语句
语法:select 列名,列名,..,列名 into 变量1,变量2,..,变量n|record变量|rowtype变量 from 表名 where 条件;
--输入一个部门编号,打印这个部门的信息
declare
--声名一个变量用来保存输入的部门编号
v_deptno number(10);
--声名一个dept%rowtype类型的变量来保存一条部门信息
v_dept dept%rowtype;
begin
--接收从键盘输入的部门编号
v_deptno:=&deptno;
--根据输入的部门编号查询出部门信息
select * into v_dept from dept where deptno=v_deptno;
--打印部门信息
dbms_output.put_line(v_dept.deptno||','||v_dept.dname||','||v_dept.loc);
end;