數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.2 使用存儲過程_第1頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.2 使用存儲過程_第2頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.2 使用存儲過程_第3頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.2 使用存儲過程_第4頁
數(shù)據(jù)庫原理與應(yīng)用快速入門 課件 6.2 使用存儲過程_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理與應(yīng)用快速入門6.1使用視圖6.2使用存儲過程6.3使用觸發(fā)器第6章

使用其他數(shù)據(jù)庫對象6.4使用MySQL系統(tǒng)函數(shù)6.2.1理解存儲過程的概念6.2.2創(chuàng)建和執(zhí)行存儲過程6.2.3查看存儲過程6.2使用存儲過程6.2.4刪除存儲過程6.2.1理解存儲過程的概念我們可以設(shè)想,將這些執(zhí)行頻率較高的操作事先用一段命令編寫好,保存在數(shù)據(jù)庫服務(wù)器端。這樣,每次執(zhí)行操作時,只需要輸入簡單的指令來執(zhí)行這段命令,從而簡化了操作,提高工作效率。這種方法就是使用存儲過程。6.2.1理解存儲過程的概念存儲過程和表、視圖一樣,也是一種數(shù)據(jù)庫對象。它是在服務(wù)器端保存和執(zhí)行的一組SQL語句的集合,主要用于提高數(shù)據(jù)庫中檢索數(shù)據(jù)的速度,以及向表中寫入或修改數(shù)據(jù)。用戶需要執(zhí)行存儲過程時,只需要給出存儲過程的名稱和必要的參數(shù)即可。6.2.1理解存儲過程的概念在數(shù)據(jù)庫中,使用存儲過程有以下優(yōu)點:1、存儲過程在服務(wù)器端運行,執(zhí)行速度快、效率高。2、存儲過程執(zhí)行一次后,其執(zhí)行規(guī)劃就駐留在高速緩沖存儲器中。當(dāng)需要再次執(zhí)行時,只要從高速緩沖存儲器中調(diào)用已編譯好的二進制代碼執(zhí)行即可,從而提高了系統(tǒng)性能。3、確保數(shù)據(jù)庫的安全。使用存儲過程可以完成所有的數(shù)據(jù)庫操作,并可以通過編程方式控制上述操作對數(shù)據(jù)庫信息訪問的權(quán)限。4、自動完成需要預(yù)先執(zhí)行的任務(wù)。存儲過程可以在系統(tǒng)啟動時自動執(zhí)行,而不必在系統(tǒng)啟動后再進行手工操作,從而大大方便了用戶的使用,自動完成一些需要預(yù)先執(zhí)行的任務(wù)。6.2.2創(chuàng)建和執(zhí)行存儲過程存儲過程由CREATEPROCEDURE語句創(chuàng)建,其語法如下:CREATEPROCEDUREproc_name([proc_parameter])Routine_body6.2.2創(chuàng)建和執(zhí)行存儲過程各部分的參數(shù)解釋如下:1、proc_name:用于指定要創(chuàng)建的存儲過程的名稱。2、proc_parameter:存儲過程的參數(shù)。在CREATEPROCEDURE語句中可以聲明一個或多個參數(shù)。參數(shù)的形式:[IN|OUT|INOUT]para_nametype其中,IN表示輸入?yún)?shù),用于接收程序執(zhí)行過程中的外部輸入值;OUT表示輸出參數(shù),用于將程序執(zhí)行的結(jié)果輸出;INOUT表示參數(shù)既可以接收輸入也可以用于輸出。如果聲明時不指定參數(shù)類型,默認為IN參數(shù)。para_name表示參數(shù)的名稱,type表示參數(shù)的數(shù)據(jù)類型,可以是MySQL中支持的任意數(shù)據(jù)類型。3、Routine_body:存儲過程主體代碼,可包含的任意數(shù)目和類型的SQL語句??梢杂肂EGIN...END來表示代碼的開始和結(jié)束。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-14】在student數(shù)據(jù)庫中創(chuàng)建名為“Stuproc1”的存儲過程,用來查詢班級為“計算機應(yīng)用”的學(xué)生的學(xué)號、姓名和性別。6.2.2創(chuàng)建和執(zhí)行存儲過程存儲過程創(chuàng)建完成后,可以使用CALL語句來執(zhí)行,稱為調(diào)用存儲過程。CALL語句的語法格式如下:

CALLproc_name([proc_parameter])6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-15】調(diào)用存儲過程“Stuproc1”,查看其執(zhí)行結(jié)果。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-16】創(chuàng)建存儲過程“Stuproc2”,根據(jù)用戶輸入的班級名,查詢該班學(xué)生的學(xué)號、姓名和性別。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-17】調(diào)用存儲過程“Stuproc2”,查詢“軟件技術(shù)”班的學(xué)生情況。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-18】創(chuàng)建存儲過程“Stuproc3”,根據(jù)用戶輸入的學(xué)號和課程名,返回該課程的成績。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-19】執(zhí)行存儲過程“Stuproc3”,查詢學(xué)號為“210101001”、課程名為“數(shù)學(xué)”的成績。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-20】創(chuàng)建存儲過程“Stuproc4”,根據(jù)用戶輸入的學(xué)號,返回該學(xué)生的選課門數(shù)。6.2.2創(chuàng)建和執(zhí)行存儲過程【例6-21】執(zhí)行存儲過程“Stuproc4”,查詢學(xué)號為“210101001”的學(xué)生的選課門數(shù)。6.2.3查看存儲過程如果要了解存儲過程的狀態(tài)信息,可以使用SHOWSTATUS語句或SHOWCREATE語句來查看,也可以通過系統(tǒng)數(shù)據(jù)庫information_schema來查詢。6.2.3查看存儲過程1、使用SHOWSTATUS語句查看存儲過程的狀態(tài)SHOWSTATUS語句的語法結(jié)構(gòu)如下:SHOWPROCEDURESTATUS[LIKE'pattern']其中,LIKE'pattern'可選,用于匹配存儲過程的名稱。6.2.3查看存儲過程【例6-22】使用SHOWSTATUS語句查看存儲過程“Stuproc1”的狀態(tài)。6.2.3查看存儲過程2、使用SHOWCREATE語句查看存儲過程的狀態(tài)SHOWCREATE語句的語法格式如下:

SHOWCREATEPROCEDUREproc_name其中,proc_name表示要查看的存儲過程的名稱。6.2.3查看存儲過程【例6-23】使用SHOWCREATE語句查看存儲過程“Stuproc1”的狀態(tài)。6.2.3查看存儲過程3、通過系統(tǒng)數(shù)據(jù)庫information_schema查看存儲過程的狀態(tài)MySQL將存儲過程的信息存儲在系統(tǒng)數(shù)據(jù)庫information_schema中的Routines表里??梢酝ㄟ^查詢該表來查看存儲過程的信息,語法格式如下:SELECT*FROMinformation_schema.RoutinesWHEREROUTINE_NAME='proc_name';其中,ROUTINE_NAME列中存儲的是存儲過程的名稱,proc_name表示要查詢的存儲過程名稱。6.2.3查看存儲過程【例6-24】從系統(tǒng)數(shù)據(jù)庫information_schema中的Routines表里查看存儲過程“Stuproc1”的狀態(tài)。6.2.4刪除存儲過程如果存儲過程已經(jīng)不常用或不能滿足業(yè)務(wù)的需要,我們就可以刪除它。刪除存儲過程使用DROP命令,DROP命令可以將一個或者多個存儲過程從當(dāng)前數(shù)據(jù)庫中刪除,其語法形式如下:

DR

溫馨提示

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

最新文檔

評論

0/150

提交評論