随笔 - 0, 文章 - 75, 评论 - 0, 引用 - 0
数据加载中……

PL/SQL

什么是PL/SQL
PL/SQL(Procedural
Language/SQL)
一种过程化语言,通过增加编程语言的特点,实现对SQL的扩展



PL/SQL的特点
支持所有SQL的语法
支持case语句,方便的实现循环
通过继承,实现子类具有父类的属性和方法
设置了新的日期类型



PL/SQL的开发环境
Oracle数据据库服务器
Oracle开发工具



PL/SQL的工作原理
由PL/SQL引擎接收指令
将指令传递给Oracle数据库服务器执行


PL/SQL

PL/SQL语句块
PL/SQL程序是按照块结构进行划分
块是PL/SQL程序的基本单位


DECLARE -->Declare用于声明变量、游标


v_name
varchar2(30)
:= 'Jack'; --
定义用户名称


v_age
number
:= 6; --
定义用户年龄


BEGIN -->表示程序的开始


--将用户的姓名和年龄插入到CLUB_USER
表中


insert into club_user
values
(
v_name,
v_age);


Exception


/*当出现异常时的处理*/


When others
then



DBMS_OUTPUT.PUT_LINE('
插入数据失败');


END; -->End表示程序结束




声明
使用declare关键字
用于定义变量或者常量


DECLARE
variable_name
[CONSTANT]
type
[NOT NULL]
[:=value];


声明
变量名 是否为常量
变量的数据类型 是否为空 变量初始化



变量命名规则
变量名首字母必须是英文字母,其后可以是字母、数字或者特殊字符$、#和下划线
变量名长度不超过30个字符
变量名中不能有空格



条件结构
IF-THEN语句:


---------------


IF
condition
THEN


Statements


END
IF;


---------------



IF-THEN-ELSE语句:


---------------


IF
condition
THEN


Statements1


ELSE


Statements2


END
IF;


---------------



条件结构
IF-THEN-ELSIF语句


---------------


IF
condition1
THEN


Statements1


ELSIF
condition2
THEN
--注意是ELSIF而不是ELSEIF


Statements2


ELSE


Statements3


END
IF;


---------------



CASE语句
在Oracle 9i 后引入


---------------


CASE
variable
--依据variable表达式,选择相应的when子句执行


WHEN
value1 THEN statements1;


WHEN
value2 THEN statements2;


……


WHEN
valuen
THEN
statementsn;


[ELSE
else_statements;]


END
CASE;


---------------


例题:根据评分结果输出评价
DECLARE
grade
char:='A';
remark
varchar2(20);
BEGIN
CASE
grade
WHEN
'A' THEN remark:="is
Excellent";

WHEN 'B' THEN remark:="is
Good";

WHEN 'C' THEN remark:="is
Normal";

WHEN 'D' THEN remark:="is
Bad";
ELSE
remark:="big Problem"; --默认执行语句

END CASE;
END;




循环结构:
LOOP循环


----------------


LOOP


statements;


END
LOOP;


----------------


实现计数器功能,当计数器为10或者大于10时退出


DECLARE

v_count integer := 1;
BEGIN

LOOP

v_count:=v_count+1;
IF
v_count>=10
THEN

EXIT;
END
IF;
END LOOP;
END;


----------------




WHILE-LOOP循环:
类似于while循环


----------------



WHILE
conditon
LOOP


statements;


END
LOOP;


----------------



FOR-LOOP循环:
类似与for循环


----------------


FOR
loop_count
IN
[REVERSE]
lower_bound..height_bound
LOOP


statements;


END
LOOP;


----------------


loop_count
-->
循环变量


lower_bound
-->循环次数最小值


height_bound
-->
循环次数最大值

posted on 2012-04-22 15:57 hantai 阅读(1229) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: