PL/SQL
什么是PL/SQL
PL/SQL(Procedural
Language/SQL)
一種過(guò)程化語(yǔ)言,通過(guò)增加編程語(yǔ)言的特點(diǎn),實(shí)現(xiàn)對(duì)SQL的擴(kuò)展
PL/SQL的特點(diǎn)
支持所有SQL的語(yǔ)法
支持case語(yǔ)句,方便的實(shí)現(xiàn)循環(huán)
通過(guò)繼承,實(shí)現(xiàn)子類具有父類的屬性和方法
設(shè)置了新的日期類型
PL/SQL的開(kāi)發(fā)環(huán)境
Oracle數(shù)據(jù)據(jù)庫(kù)服務(wù)器
Oracle開(kāi)發(fā)工具
PL/SQL的工作原理
由PL/SQL引擎接收指令
將指令傳遞給Oracle數(shù)據(jù)庫(kù)服務(wù)器執(zhí)行
PL/SQL語(yǔ)句塊
PL/SQL程序是按照塊結(jié)構(gòu)進(jìn)行劃分
塊是PL/SQL程序的基本單位
DECLARE -->Declare用于聲明變量、游標(biāo)
varchar2(30)
:= 'Jack'; --定義用戶名稱
number
:= 6; --定義用戶年齡
BEGIN
表中
values
(v_name,
v_age);
Exception
then
DBMS_OUTPUT.PUT_LINE('
END;
聲明
使用declare關(guān)鍵字
用于定義變量或者常量
DECLARE
variable_name
聲明
變量名
變量的數(shù)據(jù)類型
變量命名規(guī)則
變量名首字母必須是英文字母,其后可以是字母、數(shù)字或者特殊字符$、#和下劃線
變量名長(zhǎng)度不超過(guò)30個(gè)字符
變量名中不能有空格
條件結(jié)構(gòu)
IF-THEN語(yǔ)句:
---------------
IF
condition
THEN
END
IF;
---------------
IF-THEN-ELSE語(yǔ)句:
---------------
IF
condition
THEN
ELSE
END
IF;
---------------
條件結(jié)構(gòu)
IF-THEN-ELSIF語(yǔ)句
---------------
IF
condition1
THEN
ELSIF
condition2
THEN
--注意是ELSIF而不是ELSEIF
ELSE
END
IF;
---------------
CASE語(yǔ)句
在Oracle 9i 后引入
---------------
CASE
variable
--依據(jù)variable表達(dá)式,選擇相應(yīng)的when子句執(zhí)行
value1 THEN statements1;
value2 THEN statements2;
valuen
THEN
statementsn;
else_statements;]
END
CASE;
---------------
例題:根據(jù)評(píng)分結(jié)果輸出評(píng)價(jià)
DECLARE
char:='A';
varchar2(20);
BEGIN
grade
'A' THEN remark:="is
Excellent";
WHEN 'B' THEN remark:="is
Good";
WHEN 'C' THEN remark:="is
Normal";
WHEN 'D' THEN remark:="is
Bad";
remark:="big Problem";
END CASE;
END;
循環(huán)結(jié)構(gòu):
----------------
LOOP
END
LOOP;
----------------
實(shí)現(xiàn)計(jì)數(shù)器功能,當(dāng)計(jì)數(shù)器為10或者大于10時(shí)退出
DECLARE
v_count integer := 1;
BEGIN
LOOP
v_count:=v_count+1;
v_count>=10
THEN
EXIT;
IF;
END;
----------------
WHILE-LOOP循環(huán):
類似于while循環(huán)
----------------
WHILE
conditon
LOOP
END
LOOP;
----------------
FOR-LOOP循環(huán):
類似與for循環(huán)
----------------
FOR
loop_count
IN
[REVERSE] lower_bound..height_bound
LOOP
END
LOOP;
----------------
loop_count
--> 循環(huán)變量
lower_bound
-->循環(huán)次數(shù)最小值
height_bound
-->
循環(huán)次數(shù)最大值
posted on 2012-04-22 15:57 hantai 閱讀(1228) 評(píng)論(0) 編輯 收藏