




已閱讀5頁,還剩30頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PL/SQL程序設計,.,2,PL/SQL基礎,SQL:StructuredQueryLanguagePL/SQL:ProceduralLanguage/SQL,.,3,PL/SQL實例,一個用PL/SQL編制的程序代碼如下所示DECLARExmvarchar2(8):=張瓊;zymvarchar2(10):=計算機;zxfnumber(2):=45;/*定義變量類型*/BEGINUPDATEXSSETzxf=zxfWHERExm=xm;/*更新學生表*/IFSQL%NOTFOUNDTHEN/*檢查記錄是否存在,如果不存在就插入記錄*/INSERTINTOXS(XH,XM,ZYM,ZXF)VALUES(xs_sequence.NEXTVAL,xm,zym,zxf);ENDIF;END;,.,4,PL/SQL語句塊,匿名語句塊命名語句塊1.標號語句塊2.子程序(過程、函數)3.觸發器,.,5,基本塊結構,所有語句塊都包含三個基本的部分:聲明部分、執行部分和異常處理部分。只有執行部分是必需的,其他兩個部分都是可選的。,.,6,基本塊結構,DECLARE/*Declarativesectionishere*/BEGIN/*Executablesectionishere*/EXCEPTION/*Exceptionsectionishere*/END;,本語句塊中使用的所有變量、游標和類型都放在聲明部分。,語句塊要完成的處理工作。,對執行過程中發生的錯誤進行處理。,.,7,DECLAREv_StudentIDNUMBER(5):=10000;v_FirstNameVARCHAR2(20);BEGIN-RetrievefirstnameofstudentwithID10,000SELECTfirst_nameINTOv_FirstNameFROMstudentsWHEREid=v_StudentID;EXCEPTIONWHENNO_DATA_FOUNDTHENINSERTINTOlog_table(info)VALUES(Student10,000doesnotexist!);END;/(匿名程序塊到上面一行結束,/執行本程序塊),.,8,標識符,標識符用來命名PL/SQL對象,例如變量、游標、類型和子程序。標識符由字母開頭,后面可跟隨字母、數字、貨幣符號、下劃線和“#”字符。PL/SQL標識符的最大長度為30個字符,不區分大小寫。但是適當地使用大小寫可以提高程序的可讀性。,.,9,運算符,Oracle提供了三類運算符:算術運算符、關系運算符和邏輯運算符。1.算術運算符算術運算符執行算術運算。算術運算符有:+(加)、-(減)、*(乘)、/(除)*(指數)和(連接)。其中(加)和(減)運算符也可用于對DATE(日期)數據類型的值進行運算。例:求學生的年齡。SELECT(SYSDATECSSJ)AS年齡FROMXS;其中:SYSDATE是當前系統時間,CSSJ是出生時間。,.,10,運算符,2.關系運算符關系運算符(又稱比較運算符)有下面幾種:(1)(等于)、或!=(不等于)、(大于)、=(大于等于)、=和=40ANDZXF45ANDZYM=計算機;(3)查詢計算機系和通信工程系學生的基本情況。SELECTXH,XM,ZYM,ZXFFROMXSWHEREZYM=計算機ORZYM=通信工程;,.,13,其他符號,PL/SQL為支持編程,還使用其他一些符號。下表列出了部分符號,它們是最常用的,也是使用PL/SQL的所有用戶都必須了解的。,.,14,字符型文字,字符型文字是由單引號界定的一個或多個字符,如123456、Fouryearsago.字符型文字可直接賦值給類型CHAR或VARCHAR2字符型文本中兩個單引號表示一個單引號,如Mikesstring,.,15,數字型文本,數字型文本可以不經轉換就直接賦值給NUMBER類型變量。如:123、-7、23.1、9.87E-3,.,16,布爾型文字,僅有三種可能的布爾型文字:TRUE、FALSE和NULL。這些取值可以被賦值給布爾型變量。布爾型文字表示條件的真或假,可以在IF和LOOP語句中使用。,.,17,注釋,1.單行注釋由兩個連字符(-)開始。eg:v_Course;-Variabletoholdthecoursenumber2.多行注釋由/*開頭,由*/結尾。eg:v_Course;/*Variabletoholdthecoursenumber*/,.,18,變量聲明,變量有名字及其數據類型兩個屬性。變量名用于標識該變量,變量的數據類型確定了該變量存放值的格式及允許的運算。聲明語法variable_nametypeconstantnotnull:=value;DECLAREv_DescriptionVARCHAR2(50);v_NumberSeatsNUMBER:=45;v_CounterBINARY_INTEGER:=0;,.,19,變量聲明,變量聲明為NOTNULL的,必須要賦初始值。變量聲明為CONSTANT的,必須要賦初始值。DECLAREv_TempVarNUMBERNOTNULL:=0;c_MiniStuIDCONSTANTNUMBER(5):=10000;,.,20,PL/SQL類型,1.數字系列NUMBER(P,S)P:數值中所有數字位的個數S:小數點右邊的數字位的個數(NUMBER等價于DECIMAL、FLOAT、REAL)例如:num_fieldNUMBER(10,2);num_field是一個整數部分最多使8位,小數部分最多是2的變量。,.,21,PL/SQL類型,2.字符系列VARCHA2(L)(VARCHAR和STRING等價于VARCHAR2)例如:var_fieldVARCHAR(11):=Helloworld;,.,22,PL/SQL類型,3.日期/區間系列DATE存儲世紀、年、月、日、小時、分和秒的信息。TIMESTAMP(P)可以存儲秒字段的小數部分。,.,23,PL/SQL類型,4.布爾系列BOOLEAN其值為TRUE、FALSE和NULL之一。,.,24,PL/SQL類型,5.復合類型符合類型有記錄、表和數組。6.引用類型引用類型只有一種:游標變量,.,25,PL/SQL類型,7.使用%TYPEDECLAREv_FirstNamestudents.first_name%TYPE;通過使用”%TYPE”,v_FirstName的變量類型聲明為students表的first_name列的類型。使用%TYPE聲明具有以下兩個優點:不必知道XH列的確切的數據類型;如果改變了XH列的數據庫定義,my_xh的數據類型在運行時會自動進行修改。,.,26,PL/SQL類型,8.%ROWTYPE可以使用%ROWTYPE屬性聲明描述表的行數據的記錄,對于用戶定義的記錄,必須聲明自己的域。記錄包含唯一的命名域,具有不同的數據類型。DECLARETYPETimeRecISRECORD(HHnumber(2),MMnumber(2);TYPEMeetingTypISRECORD(Meeting_Datedate,Meeting_TimeTimeRec,Meeting_Addrvarchar2(20),Meeting_Purposevarchar2(50),.,27,變量的作用域,變量的作用域是指可以訪問該變量的程序部分。對于PL/SQL變量來說,其作用域就是從變量的聲明到語句塊的結束。當變量超出了作用域時,PL/SQL解析程序就會自動釋放該變量的存儲空間。,.,28,對象類型,1、OEM定義2、命令定義語法格式:CREATEORREPLEACETYPEschema.type_nameAUTHIDCURRENT_USER|DEFINERASOBJECT(attribute1datatype,attribute2datatype,attributendatatypemethod1method2methodn,.,29,數據類型的轉換,1.顯示數據轉換TO_CHAR(d,format)日期型-字符型TO_CHAR(num,format)數字型-字符型TO_DATE(string,format)字符型-日期型TO_NUMBER(string,format)字符型-數值型,.,30,數據類型的轉換,2.隱式數據類型轉換DECLAREv_CurrentCreditsVARCHAR2(5);BEGINSELECTcurrent_creditsINTOV_CurrentCreditsFROMstudentsWHEREid=10002;END;(current_credits字段是NUMBER(3)類型),.,31,數據類型的轉換,2.隱式數據類型轉換PL/SQL可以在下面的類型之間進行轉換:字符和數字字符和日期盡管PL/SQL將在數據類型之間進行隱式轉換,使用顯示轉換函數也是良好的程序設計風格。,.,32,表達式和運算符賦值,variable:=expression;變量名:=表達式;,DECLAREv_String1VARCHAR2(10);v_String2VARCHAR2(15);v_NumericNUMBER;BEGINv_String1:=Hello;v_String2:=v_String1;v_Numeric:=-12.4;END;,.,33,表達式示例,1.字符表達式|用于字符串連接Hello|World|!等于HelloWorld!,.,34,表達式,2.布爾表達式(45)OR(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《賓語從句的用法與結構:八年級英語教學教案》
- 網絡與生活的利弊辯論議論文類作文(13篇)
- 2025中考作文沖刺-布局謀篇 課件
- 電動汽車設計與制造-課件 第11章 線控底盤構成和設計
- 人教版四年級數學三位數乘兩位數《末尾有零的乘法》
- 顧客心理在新零售環境中的洞察與應用
- 項目管理新手必 備從規劃到執行的流程與技巧
- 顧客數據分析在提升忠誠度中的應用
- 非物質文化遺產在辦公樓宇設計中的藝術表現
- 項目管理中的數據分析與決策技巧
- 2024年廣東省新會市事業單位公開招聘輔警考試題帶答案分析
- 2024年青海大學附屬醫院招聘筆試真題
- 2024年四川省南充市八年級(初二會考)中考地理+生物真題試卷
- 數字化轉型背景下制造業產業鏈協同創新機制研究
- 第14課 光榮的少先隊 課件-2024-2025學年道德與法治一年級下冊統編版
- 2025年北京市海淀區高三二模-數學+答案
- 安全生產月活動查找身邊安全隱患人人講安全個個會應急課件
- 湖南炎德·英才大聯考長郡中學2025屆模擬試卷(一)政治+答案
- 公司主體變更勞動合同補充協議7篇
- 早產兒經口喂養臨床實踐專家共識(2025)解讀
- DB33T 1376-2024鄉鎮(街道)應急消防管理站建設與運行規范
評論
0/150
提交評論