《MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)項(xiàng)目化教程(新形態(tài)活頁(yè)式)》 課件 6.2創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程_第1頁(yè)
《MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)項(xiàng)目化教程(新形態(tài)活頁(yè)式)》 課件 6.2創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程_第2頁(yè)
《MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)項(xiàng)目化教程(新形態(tài)活頁(yè)式)》 課件 6.2創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程_第3頁(yè)
《MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)項(xiàng)目化教程(新形態(tài)活頁(yè)式)》 課件 6.2創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程_第4頁(yè)
《MySQL網(wǎng)絡(luò)數(shù)據(jù)庫(kù)項(xiàng)目化教程(新形態(tài)活頁(yè)式)》 課件 6.2創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

創(chuàng)建數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程CONTENTS目錄情景導(dǎo)入01知識(shí)連接04任務(wù)目標(biāo)03知識(shí)總結(jié)05分解任務(wù)02情景導(dǎo)入01PART

比如,計(jì)算商品利率時(shí),不同商品的利率不一樣,這就需要編寫(xiě)一個(gè)程序來(lái)存儲(chǔ)計(jì)算利率的SQL代碼,并將用戶(hù)類(lèi)別作為參數(shù)進(jìn)行指定。這種程序被稱(chēng)為存儲(chǔ)過(guò)程或存儲(chǔ)函數(shù)。使用時(shí)只需調(diào)用該存儲(chǔ)過(guò)程或存儲(chǔ)函數(shù),并根據(jù)指定的商品計(jì)算出不同商品的利率。

通過(guò)編寫(xiě)存儲(chǔ)過(guò)程或存儲(chǔ)函數(shù),可以?xún)?yōu)化復(fù)雜查詢(xún)的處理流程,讓操作更加高效,減少出錯(cuò)的機(jī)會(huì)。同時(shí),這種方式也具備更好的可復(fù)用性,能夠在不同系統(tǒng)和場(chǎng)景中有效地應(yīng)用。情景導(dǎo)入分解任務(wù)02PART分解任務(wù)

從認(rèn)識(shí)存儲(chǔ)過(guò)程著手,學(xué)習(xí)創(chuàng)建、執(zhí)行、修改和刪除存儲(chǔ)過(guò)程的方法。任務(wù)目標(biāo)03PART任務(wù)目標(biāo)1.掌握存儲(chǔ)過(guò)程的含義2.掌握存儲(chǔ)過(guò)程的創(chuàng)建方法知識(shí)連接

04PART

存儲(chǔ)過(guò)程是一組為了完成特定功能的SQL語(yǔ)句集合。用戶(hù)通過(guò)存儲(chǔ)過(guò)程可以將經(jīng)常使用的SQL語(yǔ)句封裝起來(lái),這樣可以避免重復(fù)編寫(xiě)相同的SQL語(yǔ)句。知識(shí)連接1.認(rèn)識(shí)存儲(chǔ)過(guò)程

在存儲(chǔ)過(guò)程的創(chuàng)建中,經(jīng)常會(huì)用到一個(gè)十分重要的MySQL命令,即DELIMITER命令。在MySQL中,服務(wù)器處理SQL語(yǔ)句默認(rèn)是以分號(hào)作為語(yǔ)句結(jié)束標(biāo)志。

然而,在創(chuàng)建存儲(chǔ)過(guò)程時(shí),存儲(chǔ)過(guò)程體中可能包含有多條SQL語(yǔ)句,這此SQL語(yǔ)句如果仍以分號(hào)作為語(yǔ)句結(jié)束符,那么MySQL服務(wù)器在處理時(shí)會(huì)以遇到的第一條SQL語(yǔ)句結(jié)尾處的分號(hào)作為整個(gè)程序的結(jié)束符,不再去處理存儲(chǔ)過(guò)程體中后面的SQL語(yǔ)句,這樣顯然不行。知識(shí)連接2.修改結(jié)束命令

為解決這個(gè)問(wèn)題,通??墒笵ELIMITER命令,將MySQL語(yǔ)句的結(jié)束標(biāo)志臨時(shí)修改為其他符號(hào),從而使得MySQL服務(wù)器可以完整地處理存儲(chǔ)過(guò)程體中所有的SQL語(yǔ)句。知識(shí)連接DELIMITER命令的語(yǔ)法格式: DELIMITER

$$

$$是用戶(hù)定義的結(jié)束符。通常這個(gè)符號(hào)可以是一些特殊的符號(hào),如兩個(gè)“#”或兩人“¥”等。當(dāng)使用DELIMITER命令時(shí),應(yīng)該避免使用反斜杠“\”字符,因?yàn)樗荕ySQL的轉(zhuǎn)義字符。舉例【例6.10】將MySQL結(jié)束符修改為兩個(gè)感嘆號(hào)“!!”輸入SQL語(yǔ)句:

DELIMITER!!成功執(zhí)行后,任何命令、語(yǔ)句或程序的結(jié)束標(biāo)志就換為兩個(gè)感嘆號(hào)“!!”如要查看訂單表的信息,SQL語(yǔ)句應(yīng)如下:

select*from訂單表!!若要換回默認(rèn)的分號(hào)“:”作為結(jié)束標(biāo)志,只需要在MySQL命令行客戶(hù)端輸入如下SQL語(yǔ)句即可:

DELIMITER:存儲(chǔ)過(guò)程名存儲(chǔ)過(guò)程的名稱(chēng)默認(rèn)在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建。需要在特定數(shù)據(jù)庫(kù)中創(chuàng)建存儲(chǔ)過(guò)程時(shí),要在名稱(chēng)前面加上數(shù)據(jù)庫(kù)的名稱(chēng)。格式為:數(shù)據(jù)庫(kù)名.存儲(chǔ)過(guò)程名。

這個(gè)名稱(chēng)應(yīng)當(dāng)盡量避免與MySQL的內(nèi)置函數(shù)名稱(chēng)相同,

否則會(huì)發(fā)生錯(cuò)誤。知識(shí)連接3.創(chuàng)建存儲(chǔ)過(guò)程創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法格式如下:CREATEPROCEDURE存儲(chǔ)過(guò)程名([參數(shù)[,...])存儲(chǔ)過(guò)程體參數(shù):存儲(chǔ)過(guò)程的參數(shù),格式如下:[IN|OUT|INOUT]參數(shù)名類(lèi)型當(dāng)有多個(gè)參數(shù)的時(shí)候,中間用逗號(hào)隔開(kāi)。存儲(chǔ)過(guò)程可以有0個(gè)、1個(gè)或多個(gè)參數(shù)。支持3種類(lèi)型的參數(shù):輸入?yún)?shù)、輸出參數(shù)和輸入/輸出參數(shù)關(guān)鍵字分別是IN、OUT和INOUT。

參數(shù)的名字不要等于列的名字,否則雖然不會(huì)返回出錯(cuò)消息,但是存儲(chǔ)

過(guò)

程中的SQL語(yǔ)句會(huì)將參數(shù)名看作列名,從而可能產(chǎn)生不可預(yù)知的結(jié)果。知識(shí)連接3.創(chuàng)建存儲(chǔ)過(guò)程創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法格式如下:CREATEPROCEDURE存儲(chǔ)過(guò)程名([參數(shù)[,...])存儲(chǔ)過(guò)程體存儲(chǔ)過(guò)程體:這是存儲(chǔ)過(guò)程的主體部分,里面包含了在過(guò)程調(diào)用的時(shí)候必須執(zhí)行的語(yǔ)句,這個(gè)部分總是以BEGIN開(kāi)始,以END結(jié)束。但是,當(dāng)存儲(chǔ)過(guò)程體中只有一個(gè)SQL語(yǔ)句時(shí),可以省略BEGIN-END標(biāo)識(shí)。知識(shí)連接3.創(chuàng)建存儲(chǔ)過(guò)程創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法格式如下:CREATEPROCEDURE存儲(chǔ)過(guò)程名([參數(shù)[,...])存儲(chǔ)過(guò)程體當(dāng)調(diào)用該存儲(chǔ)過(guò)程時(shí),MySQL根據(jù)提供的參數(shù)“手工刺繡”刪除商品分類(lèi)表中對(duì)應(yīng)的數(shù)據(jù)。知識(shí)連接【例6.11】

編寫(xiě)一個(gè)存儲(chǔ)過(guò)程,實(shí)現(xiàn)的功能是刪除一個(gè)指定的商品類(lèi)別。DELIMITER$$CREATEPROCEDUREDEL_商品分類(lèi)表()

BEGIN

DELETEFROM商品分類(lèi)表where分類(lèi)名稱(chēng)='手工刺繡':

END$$DELIMITER:知識(shí)連接4.

查看存儲(chǔ)過(guò)程使用SHOWPROCEDURESTATUS命令查看數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程。SHOWPROCEDURESTATUS:例如要看例6.11創(chuàng)建的過(guò)程DEL_商品分類(lèi)表的語(yǔ)句,如下所示。SHOWCREATEPROCEDUREDEL_商品分類(lèi)表:參數(shù):調(diào)用該存儲(chǔ)過(guò)程使用的參數(shù),這條語(yǔ)句中的參數(shù)個(gè)數(shù)必須總是等于存儲(chǔ)過(guò)程的參數(shù)個(gè)數(shù)。知識(shí)連接5.調(diào)用存儲(chǔ)過(guò)程創(chuàng)建存儲(chǔ)過(guò)程完成后,可以在程序、觸發(fā)器或存儲(chǔ)過(guò)程中被調(diào)用,調(diào)用時(shí)都必須使用CALL命令,語(yǔ)法格式如下:CALL存儲(chǔ)過(guò)程名([參數(shù)[,...]])存儲(chǔ)過(guò)程名:存儲(chǔ)過(guò)程的名稱(chēng),如果要調(diào)用某個(gè)特定數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程,則需要在前面加上該數(shù)據(jù)庫(kù)的名稱(chēng)。舉例刪除“特色美食”的商品類(lèi)別,需調(diào)用例6.11的存儲(chǔ)過(guò)程,但需加入?yún)?shù)DELIMITER$$CREATEPROCEDUREDEL_商品分類(lèi)表(IN分類(lèi)名VARCHAR(50))

BEGIN

DELETEFROM商品分類(lèi)表where分類(lèi)名稱(chēng)=分類(lèi)名;

END$$

DELIMITER;調(diào)用存儲(chǔ)過(guò)程:CALLDEL_商品分類(lèi)表(‘特色美食’):知識(shí)連接6.刪除存儲(chǔ)過(guò)程需要?jiǎng)h除存儲(chǔ)過(guò)程時(shí)使用DROPPROCEDURE語(yǔ)句。在刪除之前,必須確認(rèn)該存儲(chǔ)過(guò)程沒(méi)有任何依賴(lài)關(guān)系,否則可能會(huì)導(dǎo)致其他與之關(guān)聯(lián)的存儲(chǔ)過(guò)程無(wú)法運(yùn)行。語(yǔ)法格式:DROPPROCEDURE[IFEXISTS]存儲(chǔ)過(guò)程名存儲(chǔ)過(guò)程名:要?jiǎng)h除的存儲(chǔ)過(guò)程名稱(chēng)。IFEXISTS:是可選項(xiàng),如果程序或函數(shù)不存在,則該字句可以防止發(fā)生錯(cuò)誤。例如,要?jiǎng)h除存儲(chǔ)過(guò)程DEL_商品分類(lèi)表,使用如下語(yǔ)句DROPPROCEDUREIF

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論