隨筆 - 0, 文章 - 75, 評(píng)論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          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

          PL/SQL語(yǔ)句塊
          PL/SQL程序是按照塊結(jié)構(gòu)進(jìn)行劃分
          塊是PL/SQL程序的基本單位


          DECLARE -->Declare用于聲明變量、游標(biāo)


          v_name
          varchar2(30)
          := 'Jack'; --
          定義用戶名稱


          v_age
          number
          := 6; --
          定義用戶年齡


          BEGIN -->表示程序的開(kāi)始


          --將用戶的姓名和年齡插入到CLUB_USER
          表中


          insert into club_user
          values
          (
          v_name,
          v_age);


          Exception


          /*當(dāng)出現(xiàn)異常時(shí)的處理*/


          When others
          then



          DBMS_OUTPUT.PUT_LINE('
          插入數(shù)據(jù)失敗');


          END; -->End表示程序結(jié)束




          聲明
          使用declare關(guān)鍵字
          用于定義變量或者常量


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


          聲明
          變量名 是否為常量
          變量的數(shù)據(jù)類型 是否為空 變量初始化



          變量命名規(guī)則
          變量名首字母必須是英文字母,其后可以是字母、數(shù)字或者特殊字符$、#和下劃線
          變量名長(zhǎng)度不超過(guò)30個(gè)字符
          變量名中不能有空格



          條件結(jié)構(gòu)
          IF-THEN語(yǔ)句:


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


          IF
          condition
          THEN


          Statements


          END
          IF;


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



          IF-THEN-ELSE語(yǔ)句:


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


          IF
          condition
          THEN


          Statements1


          ELSE


          Statements2


          END
          IF;


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



          條件結(jié)構(gòu)
          IF-THEN-ELSIF語(yǔ)句


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


          IF
          condition1
          THEN


          Statements1


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


          Statements2


          ELSE


          Statements3


          END
          IF;


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



          CASE語(yǔ)句
          在Oracle 9i 后引入


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


          CASE
          variable
          --依據(jù)variable表達(dá)式,選擇相應(yīng)的when子句執(zhí)行


          WHEN
          value1 THEN statements1;


          WHEN
          value2 THEN statements2;


          ……


          WHEN
          valuen
          THEN
          statementsn;


          [ELSE
          else_statements;]


          END
          CASE;


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


          例題:根據(jù)評(píng)分結(jié)果輸出評(píng)價(jià)
          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"; --默認(rèn)執(zhí)行語(yǔ)句

          END CASE;
          END;




          循環(huán)結(jié)構(gòu):
          LOOP循環(huán)


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


          LOOP


          statements;


          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;
          IF
          v_count>=10
          THEN

          EXIT;
          END
          IF;
          END LOOP;
          END;


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




          WHILE-LOOP循環(huán):
          類似于while循環(huán)


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



          WHILE
          conditon
          LOOP


          statements;


          END
          LOOP;


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



          FOR-LOOP循環(huán):
          類似與for循環(huán)


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


          FOR
          loop_count
          IN
          [REVERSE]
          lower_bound..height_bound
          LOOP


          statements;


          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)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 德清县| 丽水市| 高密市| 普兰县| 万年县| 安义县| 临朐县| 宜州市| 辽源市| 蓬安县| 田东县| 增城市| 略阳县| 白水县| 毕节市| 保靖县| 浠水县| 罗山县| 普兰店市| 城市| 霸州市| 南华县| 项城市| 东阳市| 娄烦县| 渑池县| 故城县| 牟定县| 满洲里市| 饶平县| 土默特右旗| 广宗县| 宜昌市| 平谷区| 贵定县| 日喀则市| 观塘区| 扶余县| 藁城市| 广灵县| 陵水|