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程序的基本單位
DECLARE -->Declare用于聲明變量、游標
varchar2(30)
:= 'Jack'; --定義用戶名稱
number
:= 6; --定義用戶年齡
BEGIN
表中
values
(v_name,
v_age);
Exception
then
DBMS_OUTPUT.PUT_LINE('
END;
聲明
使用declare關鍵字
用于定義變量或者常量
DECLARE
variable_name
聲明
變量名
變量的數據類型
變量命名規則
變量名首字母必須是英文字母,其后可以是字母、數字或者特殊字符$、#和下劃線
變量名長度不超過30個字符
變量名中不能有空格
條件結構
IF-THEN語句:
---------------
IF
condition
THEN
END
IF;
---------------
IF-THEN-ELSE語句:
---------------
IF
condition
THEN
ELSE
END
IF;
---------------
條件結構
IF-THEN-ELSIF語句
---------------
IF
condition1
THEN
ELSIF
condition2
THEN
--注意是ELSIF而不是ELSEIF
ELSE
END
IF;
---------------
CASE語句
在Oracle 9i 后引入
---------------
CASE
variable
--依據variable表達式,選擇相應的when子句執行
value1 THEN statements1;
value2 THEN statements2;
valuen
THEN
statementsn;
else_statements;]
END
CASE;
---------------
例題:根據評分結果輸出評價
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;
循環結構:
----------------
LOOP
END
LOOP;
----------------
實現計數器功能,當計數器為10或者大于10時退出
DECLARE
v_count integer := 1;
BEGIN
LOOP
v_count:=v_count+1;
v_count>=10
THEN
EXIT;
IF;
END;
----------------
WHILE-LOOP循環:
類似于while循環
----------------
WHILE
conditon
LOOP
END
LOOP;
----------------
FOR-LOOP循環:
類似與for循環
----------------
FOR
loop_count
IN
[REVERSE] lower_bound..height_bound
LOOP
END
LOOP;
----------------
loop_count
--> 循環變量
lower_bound
-->循環次數最小值
height_bound
-->
循環次數最大值