LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料課件_第1頁
LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料課件_第2頁
LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料課件_第3頁
LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料課件_第4頁
LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料課件_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料1Procedural LanguageLSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料2 PL/SQL是是Oracle對(duì)關(guān)系數(shù)據(jù)庫語言對(duì)關(guān)系數(shù)據(jù)庫語言SQL的過程化擴(kuò)充的過程化擴(kuò)充,它將數(shù)據(jù)庫技術(shù)和它將數(shù)據(jù)庫技術(shù)和過程化程序設(shè)計(jì)語言聯(lián)系起來過程化程序設(shè)計(jì)語言聯(lián)系起來,是一種應(yīng)用開發(fā)語言是一種應(yīng)用開發(fā)語言,可使用循環(huán)可使用循環(huán),分支處理分支處理數(shù)據(jù)數(shù)據(jù),將將SQL的數(shù)據(jù)操縱功能與過程化語言數(shù)據(jù)處理功能結(jié)合起來的數(shù)據(jù)操縱功能與過程化語言數(shù)據(jù)處理功能結(jié)合起來. 說明部分說明部分:說明變量及常量說明變量及常量執(zhí)行部分執(zhí)行部分:使用使用SQL的的DML語言事

2、務(wù)處理語言事務(wù)處理例外處理例外處理:處理錯(cuò)誤及警告信息處理錯(cuò)誤及警告信息LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料3PL/SQL中可以定義變量中可以定義變量,變量有其作用范圍變量有其作用范圍PL/SQL是以塊的方式設(shè)計(jì)是以塊的方式設(shè)計(jì),塊中可以嵌套子塊塊中可以嵌套子塊,子塊可以位子塊可以位于塊中任何部分于塊中任何部分子塊可以是子塊可以是PL/SQL中的一條命令中的一條命令PL/SQL中可以使用條件判斷中可以使用條件判斷,循環(huán)循環(huán),游標(biāo)等高級(jí)語言程序設(shè)游標(biāo)等高級(jí)語言程序設(shè)計(jì)方法計(jì)方法LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料4減少對(duì)于減少對(duì)于Oracle核心的訪問核心的訪問,降低網(wǎng)絡(luò)負(fù)責(zé)

3、降低網(wǎng)絡(luò)負(fù)責(zé)數(shù)據(jù)庫數(shù)據(jù)類型集成數(shù)據(jù)庫數(shù)據(jù)類型集成PL/SQL支持全部的支持全部的SQL數(shù)據(jù)類型數(shù)據(jù)類型,這些共享的數(shù)據(jù)類型與這些共享的數(shù)據(jù)類型與SQL所提供的直接存取相結(jié)合所提供的直接存取相結(jié)合,使使PL/SQL與與Oracle數(shù)數(shù)據(jù)字典結(jié)合成一體據(jù)字典結(jié)合成一體.PL/SQL與與Oracle RDBMS集成在一起集成在一起,可以使用可以使用PL/SQL的集成數(shù)據(jù)類型的集成數(shù)據(jù)類型,使變量的數(shù)據(jù)類型在數(shù)據(jù)庫的操作中實(shí)使變量的數(shù)據(jù)類型在數(shù)據(jù)庫的操作中實(shí)時(shí)確定時(shí)確定.LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料5PL/SQL語句含有語句含有SQL的的DML語句語句,檢索及事務(wù)處理檢索及事務(wù)處理P

4、L/SQL中可以使用的中可以使用的SQL語句如下語句如下: INSERT UPDATE DELETE SELECT INTO COMMIT ROLLBACK SAVEPOINT支持支持 RDBMS 的所有數(shù)據(jù)類型的所有數(shù)據(jù)類型 對(duì)于對(duì)于SQL的數(shù)據(jù)類型進(jìn)行了擴(kuò)充的數(shù)據(jù)類型進(jìn)行了擴(kuò)充,增加了新的數(shù)據(jù)類型增加了新的數(shù)據(jù)類型,使使PL/SQL所支持的數(shù)據(jù)類型更靈活所支持的數(shù)據(jù)類型更靈活.Oracle RDBMS 對(duì)于對(duì)于PL/SQL中引用的表名中引用的表名,列名進(jìn)行語句檢列名進(jìn)行語句檢查查對(duì)于對(duì)于SQL語句的執(zhí)行結(jié)果語句的執(zhí)行結(jié)果,PL/SQL提供返回信息檢查提供返回信息檢查,通過通過PL/SQL的

5、例外處理的例外處理,記錄記錄SQL的執(zhí)行結(jié)果的執(zhí)行結(jié)果.LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料6變量的使用變量的使用 和其他高級(jí)語言一樣和其他高級(jí)語言一樣,在在PL/SQL中可以使用變中可以使用變 量量注釋注釋 單行注釋單行注釋: - 多行注釋多行注釋: /* */數(shù)據(jù)類型數(shù)據(jù)類型 日期型日期型 Date 字符型字符型 CHAR,VARCHAR2 數(shù)字型數(shù)字型 NUMBER 布爾型布爾型 BOOLEAN(TRUE,FALSE,NULL)數(shù)據(jù)類型數(shù)據(jù)類型FloatIntRealSmallint子類子類LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料7&數(shù)字型數(shù)字型lNUMBER 存

6、儲(chǔ)整型及實(shí)型數(shù)據(jù),可以定義精度和取值范圍存儲(chǔ)整型及實(shí)型數(shù)據(jù),可以定義精度和取值范圍BINARY_INTEGER 可存儲(chǔ)帶符號(hào)整數(shù),為整數(shù)計(jì)算優(yōu)化性能可存儲(chǔ)帶符號(hào)整數(shù),為整數(shù)計(jì)算優(yōu)化性能 DEC NUMBER的子類型,的子類型,存儲(chǔ)存儲(chǔ)實(shí)型數(shù)據(jù)實(shí)型數(shù)據(jù) DOUBLE PRECISION NUMBER的子類型,高精度實(shí)數(shù)的子類型,高精度實(shí)數(shù) INTEGER NUMBER的子類型,整數(shù)的子類型,整數(shù) INT NUMBER的子類型,整數(shù)的子類型,整數(shù)LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料8&數(shù)字型數(shù)字型SMALLINT NUMBER的子類型,取值范圍比的子類型,取值范圍比INTEGER

7、小小NUMERIC NUMBER的子類型,與的子類型,與NUMBER等價(jià)等價(jià)REAL NUMBER的子類型,存儲(chǔ)實(shí)型數(shù)據(jù)的子類型,存儲(chǔ)實(shí)型數(shù)據(jù)LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料9&字符型字符型VARCHAR2 存放可變長字符串,有最大長度限制存放可變長字符串,有最大長度限制 CHAR 字符型,固定長度字符型,固定長度 LONG 長字符型長字符型 CLOB 大對(duì)象字符大對(duì)象字符(Oracle8、Oracle8i)& 日期型日期型 Date 存儲(chǔ)日期數(shù)據(jù)存儲(chǔ)日期數(shù)據(jù)LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料10& 布爾型布爾型 BOOLEAN 結(jié)果是結(jié)果是T

8、RUE或或FALSE& 二進(jìn)制數(shù)據(jù)二進(jìn)制數(shù)據(jù) RAW 存儲(chǔ)多媒體數(shù)據(jù),如圖象、聲音、視頻等存儲(chǔ)多媒體數(shù)據(jù),如圖象、聲音、視頻等 BLOB 大對(duì)象大對(duì)象如圖象、聲音、視頻等(如圖象、聲音、視頻等(Oracle8、Oracle8i)LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料11數(shù)據(jù)定義數(shù)據(jù)定義 標(biāo)示符標(biāo)示符 數(shù)據(jù)類型數(shù)據(jù)類型 ; 標(biāo)示符標(biāo)示符 數(shù)據(jù)類型數(shù)據(jù)類型 := PL/SQL表達(dá)式表達(dá)式;例如例如, v_salary number(7,2); v_ename varchar2(20) :=SMITH; LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料12變量賦值變量賦值 變量名變量名

9、 := 值值; v_salary := 890.76; v_date :=25-MAR-99; Available_now :=FALSE;%TYPE類型類型Credit Real(7,2);Debit Credit%TYPE; My_name Employee.ename%TYPE;& %TYPE 屬性屬性 %ROWTYPE:行類型行類型LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料13PL/SQL 的記錄類型的記錄類型把邏輯相關(guān)的數(shù)據(jù)作為一個(gè)單元存儲(chǔ)起來把邏輯相關(guān)的數(shù)據(jù)作為一個(gè)單元存儲(chǔ)起來,在在 Declare 段中定義段中定義record類型數(shù)據(jù),使某一類型數(shù)據(jù),使某一 變量使用

10、該變量使用該record型數(shù)據(jù)型數(shù)據(jù)定義方法:定義方法:TYPE r_record is RECORD ( v_name emp.ename%TYPE, v_job emp.job%TYPE, v_sal emp.sal%TYPE); 變量定義變量定義 r_emp r_record; 變量使用變量使用SELECT ename,job,sal INTO r_emp FROM emp WHERE empno=7934; 則,則,r_emp.v_ename,r_emp.v_job,r_emp.v_sal 已有已有 值;值; 給變量賦值:給變量賦值:r_employee r_record; r_emp

11、loyee.v_ename :=JACK; r_employee.v_job :=CLERK; r_employee.v_sal := 890.98;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料14 TABLE類型數(shù)據(jù)類型數(shù)據(jù)PL/SQL中的表中的表(table)類型類似于語言中的類型類似于語言中的結(jié)構(gòu)類型數(shù)組結(jié)構(gòu)類型數(shù)組定義方法:定義方法:TYPE table_emp IS TABLE OF emp.ename %TYPE INDEX BY BINARY_INTEGER; 一個(gè)一個(gè)PL/SQL表有兩個(gè)列,表有兩個(gè)列,(key,value),key列類型即是列類型即是 BINARY_INTE

12、GER,而而value類型則是所定義的數(shù)據(jù)類型類型則是所定義的數(shù)據(jù)類型Table類型使用:定義變量類型使用:定義變量 my_name為為 table_emp 類型類型,則可以使則可以使用變量用變量 my_name ,也可以在也可以在SQL語句中使用語句中使用 table類型變量類型變量my_name table_emp; my_name(0) :=SCOTT; my_name(1) :=SMITH; my_name(2) :=SUSAN;SELECT ename INTO my_name(10) FROM emp WHERE empno = 7934;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)

13、資料15LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料16LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料17IF-THEN語句語句 IF 條件成立條件成立 THEN 可執(zhí)行語句可執(zhí)行語句; END IF;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料18IF-THEN-ELSE語句語句 IF 條件成立條件成立 THEN 執(zhí)行語句執(zhí)行語句1; ELSE 執(zhí)行語句執(zhí)行語句2; END IF;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料19IF-THEN-ELSIF語句語句 IF 條件條件1成立成立 THEN 執(zhí)行語句執(zhí)行語句1; ELSIF 條件條件2成立成立 THEN 執(zhí)行語句執(zhí)行語句2; E

14、LSIF 條件條件3成立成立 THEN 執(zhí)行語句執(zhí)行語句3; . END IF;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料20基本循環(huán)基本循環(huán) LOOP 執(zhí)行語句;執(zhí)行語句; EXIT WHEN 條件成立;條件成立; END LOOP;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料21WHILE循環(huán)循環(huán) WHILE 條件成立條件成立 LOOP 執(zhí)行語句;執(zhí)行語句; END LOOP;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料22FOR循環(huán)循環(huán) FOR 計(jì)數(shù)器計(jì)數(shù)器 IN 低界低界.高界高界 LOOP 執(zhí)行語句;執(zhí)行語句; END LOOP;LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料

15、23什么是光標(biāo)什么是光標(biāo)光標(biāo)使用光標(biāo)使用光標(biāo)說明光標(biāo)說明 :在:在Declare 段中命名光標(biāo),將光標(biāo)與一查詢語句聯(lián)系起來段中命名光標(biāo),將光標(biāo)與一查詢語句聯(lián)系起來. 語法:語法: CURSOR 光標(biāo)名光標(biāo)名(參數(shù)參數(shù)) IS SELECT 字句字句; 打開光標(biāo)打開光標(biāo) 獲取活動(dòng)集中的行獲取活動(dòng)集中的行 FETCH語句檢索活動(dòng)集中的行,每次一行,每執(zhí)行一次語句檢索活動(dòng)集中的行,每次一行,每執(zhí)行一次FECTCH,光,光標(biāo)前進(jìn)到活動(dòng)集中的下一行標(biāo)前進(jìn)到活動(dòng)集中的下一行。光標(biāo)下移光標(biāo)下移關(guān)閉光標(biāo)關(guān)閉光標(biāo)LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料24光標(biāo)屬性光標(biāo)屬性 每一個(gè)光標(biāo)有四種屬性每一個(gè)光標(biāo)有

16、四種屬性 %FOUND 查詢語句查詢語句(FETCH語句語句)返回記錄返回記錄%NOTFOUND 查詢語句查詢語句(FETCH語句語句)無返回記錄,用于循環(huán)退出條件無返回記錄,用于循環(huán)退出條件%ROWCOUNT FETCH已獲取的記錄數(shù)已獲取的記錄數(shù)%ISOPEN 光標(biāo)已打開標(biāo)記光標(biāo)已打開標(biāo)記 if not C%ISOPEN then open C; end if;Loop FETCH C INTO v_ename,v_sal;EXIT WHEN C%NOTFOUND;END LOOP;屬性使用屬性使用LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料25隱式光標(biāo)處理隱式光標(biāo)處理 隱式光標(biāo)是指在隱

17、式光標(biāo)是指在處理處理SQL時(shí)時(shí),不需定義光標(biāo),所使用的不需定義光標(biāo),所使用的SQL語句語句包括:包括:INSERT ,UPDATE,DELETE子句。子句。隱式光標(biāo)屬性隱式光標(biāo)屬性 SQL%FOUND SQL%NOTFOUND 由執(zhí)行上述語句結(jié)果引起由執(zhí)行上述語句結(jié)果引起 SQL%ROWCOUNT隱式光標(biāo)的使用隱式光標(biāo)的使用Begin update emp set sal=1200 where empno=1234; if SQL%NOTFOUND then insert into Errors(empno,sal) values(1234,1200); end if;End;LSQL-清華大

18、學(xué)計(jì)算中心ORACLE培訓(xùn)資料26 Oracle預(yù)定義的例外預(yù)定義的例外: 是由是由PL/SQL運(yùn)行過程中,系統(tǒng)自動(dòng)產(chǎn)生的信息運(yùn)行過程中,系統(tǒng)自動(dòng)產(chǎn)生的信息。 用戶定義例外用戶定義例外: 是用戶根據(jù)需要,自己定義使用的例外,執(zhí)行時(shí)是用戶根據(jù)需要,自己定義使用的例外,執(zhí)行時(shí) 由用戶自己引起。由用戶自己引起。預(yù)定義的例外預(yù)定義的例外用戶自定義例外用戶自定義例外 用戶定義的例外必須在用戶定義的例外必須在DECLARE段中說明,在段中說明,在Begin段中用段中用RAISE引起,在引起,在EXCEPTION段中使用。段中使用。LSQL-清華大學(xué)計(jì)算中心ORACLE培訓(xùn)資料27 用戶定義例外的說明:定義名為用戶定義例外的說明:定義名為 out_of_range 的例外的例外 Declare

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論