溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么理解SQL的存儲(chǔ)過(guò)程

發(fā)布時(shí)間:2021-10-13 16:08:11 來(lái)源:億速云 閱讀:123 作者:柒染 欄目:數(shù)據(jù)庫(kù)

本篇文章為大家展示了怎么理解SQL的存儲(chǔ)過(guò)程,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

一、MySQL的存儲(chǔ)的過(guò)程:一個(gè)存儲(chǔ)過(guò)程是一個(gè)可的函數(shù),它在中創(chuàng)建并保存。當(dāng)希望在不同的應(yīng)用程序或平臺(tái)上執(zhí)行相同的函數(shù),或者封裝特定功能時(shí),存儲(chǔ)過(guò)程是非常有用的。

優(yōu)點(diǎn):

1、存儲(chǔ)過(guò)程增強(qiáng)了SQL語(yǔ)句的功能和語(yǔ)句靈活性。存儲(chǔ)過(guò)程可以用流控制編寫(xiě),有很強(qiáng)的靈活性,可以完成復(fù)雜的判斷和比較復(fù)雜的運(yùn)算。

       2、存儲(chǔ)過(guò)程允許標(biāo)準(zhǔn)組件是編程。儲(chǔ)存過(guò)程被創(chuàng)建后,可以在程序中被多次調(diào)用,而不必重新編寫(xiě)該存儲(chǔ)過(guò)程的SQL語(yǔ)句。而在數(shù)據(jù)庫(kù)專(zhuān)業(yè)人員可以隨時(shí)對(duì)存儲(chǔ)過(guò)程進(jìn)行修改,對(duì)應(yīng)用程序源代碼毫無(wú)影響。

3、存儲(chǔ)過(guò)程能過(guò)減少網(wǎng)絡(luò)流量。針對(duì)同一個(gè)數(shù)據(jù)庫(kù)對(duì)象的操作(如查詢、修改),如果這一操作所涉及的Transaction-SQL語(yǔ)句被組織程存儲(chǔ)過(guò)程,那么當(dāng)在客戶計(jì)算機(jī)上調(diào)用該存儲(chǔ)過(guò)程時(shí),網(wǎng)絡(luò)中傳送的只是該調(diào)用語(yǔ)句,從而大大增加了網(wǎng)絡(luò)流量并降低了網(wǎng)絡(luò)負(fù)載。

4、存儲(chǔ)過(guò)程可被作為一種安全機(jī)制來(lái)充分利用。系統(tǒng)管理員通過(guò)執(zhí)行某一存儲(chǔ)過(guò)程的權(quán)限進(jìn)行限制,能夠?qū)崿F(xiàn)對(duì)相應(yīng)的數(shù)據(jù)的訪問(wèn)權(quán)限的限制,避免了非授權(quán)用戶對(duì)數(shù)據(jù)的訪問(wèn),保證了數(shù)據(jù)的安全。

二、MySQL存儲(chǔ)過(guò)程的創(chuàng)建:

(1)格式

MySQL存儲(chǔ)過(guò)程創(chuàng)建的格式:

create procedure 過(guò)程名 ([過(guò)程參數(shù)[,...]])   procedure[特性 ...] 過(guò)程體

示例:

注:

(1)這里需要注意的是DELIMITER //和DELIMITER ;兩句,DELIMITER是分割符的意思,因?yàn)镸ySQL默認(rèn)以";"為分隔符,如果我們沒(méi)有聲明分割符,那么編譯器會(huì)把存儲(chǔ)過(guò)程當(dāng)成SQL語(yǔ)句進(jìn)行處理,則存儲(chǔ)過(guò)程的編譯過(guò)程會(huì)報(bào)錯(cuò),所以要事先用DELIMITER關(guān)鍵字申明當(dāng)前段分隔符,這樣MySQL才會(huì)將";"當(dāng)做存儲(chǔ)過(guò)程中的代碼,不會(huì)執(zhí)行這些代碼,用完了之后要把分隔符還原。

(2)存儲(chǔ)過(guò)程根據(jù)需要可能會(huì)有輸入、輸出、輸入輸出參數(shù),這里有一個(gè)輸出參數(shù)s,類(lèi)型是int型,如果有多個(gè)參數(shù)用","分割開(kāi)。

(3)過(guò)程體的開(kāi)始與結(jié)束使用BEGIN與END進(jìn)行標(biāo)識(shí)。

這樣,我們的一個(gè)MySQL存儲(chǔ)過(guò)程就完成了,是不是很容易呢?看不懂也沒(méi)關(guān)系,接下來(lái),我們?cè)敿?xì)的講解。

(2)、 參數(shù)

MySQL存儲(chǔ)過(guò)程的參數(shù)用在存儲(chǔ)過(guò)程的定義,共有三種參數(shù)類(lèi)型,IN,OUT,INOUT,形式如:

CREATE PROCEDURE 存儲(chǔ)過(guò)程名([[IN |OUT |INOUT ] 參數(shù)名 數(shù)據(jù)類(lèi)形...])

IN 輸入?yún)?shù):表示該參數(shù)的值必須在調(diào)用存儲(chǔ)過(guò)程時(shí)指定,在存儲(chǔ)過(guò)程中修改該參數(shù)的值不能被返回,為默認(rèn)值

OUT 輸出參數(shù):該值可在存儲(chǔ)過(guò)程內(nèi)部被改變,并可返回

INOUT 輸入輸出參數(shù):調(diào)用時(shí)指定,并且可被改變和返回

上述內(nèi)容就是怎么理解SQL的存儲(chǔ)過(guò)程,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

sql
AI