sql存儲(chǔ)過程的寫法是什么

寫法為“CREATE PROCEDURE 過程名 ([過程參數(shù)]) 過程體 [過程參數(shù) ] 格式 [IN|OUT|INOUT] 參數(shù)名 類型”。過程名應(yīng)當(dāng)盡量避免選取與內(nèi)置函數(shù)相同的名稱,否則會(huì)發(fā)生錯(cuò)誤;過程體以BEGIN開始,END結(jié)束。

sql存儲(chǔ)過程的寫法是什么

本教程操作環(huán)境:windows7系統(tǒng)、mysql5.8版、Dell G3電腦。

(推薦教程:mysql視頻教程

MySQL 存儲(chǔ)過程是一些 SQL 語句的集合,比如有時(shí)候我們可能需要一大串的 SQL 語句,或者說在編寫 SQL 語句的過程中需要設(shè)置一些變量的值,這個(gè)時(shí)候我們就完全有必要編寫一個(gè)存儲(chǔ)過程。

編寫存儲(chǔ)過程并不是件簡單的事情,但是使用存儲(chǔ)過程可以簡化操作,且減少冗余的操作步驟,同時(shí),還可以減少操作過程中的失誤,提高效率,因此應(yīng)該盡可能的學(xué)會(huì)使用存儲(chǔ)過程。

下面主要介紹如何創(chuàng)建存儲(chǔ)過程。

可以使用 CREATE PROCEDURE 語句創(chuàng)建存儲(chǔ)過程,語法格式如下:

CREATE?PROCEDURE??(?[過程參數(shù)[,…]?]?)? [過程參數(shù)[,…]?]?格式 [?IN?|?OUT?|?INOUT?]??

語法說明如下:

1) 過程名

存儲(chǔ)過程的名稱,默認(rèn)在當(dāng)前數(shù)據(jù)庫中創(chuàng)建。若需要在特定數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)過程,則要在名稱前面加上數(shù)據(jù)庫的名稱,即 db_name.sp_name。

需要注意的是,名稱應(yīng)當(dāng)盡量避免選取與 MySQL 內(nèi)置函數(shù)相同的名稱,否則會(huì)發(fā)生錯(cuò)誤。

2) 過程參數(shù)

存儲(chǔ)過程的參數(shù)列表。其中,為參數(shù)名,為參數(shù)的類型(可以是任何有效的 MySQL 數(shù)據(jù)類型)。當(dāng)有多個(gè)參數(shù)時(shí),參數(shù)列表中彼此間用逗號(hào)分隔。存儲(chǔ)過程可以沒有參數(shù)(此時(shí)存儲(chǔ)過程的名稱后仍需加上一對(duì)括號(hào)),也可以有 1 個(gè)或多個(gè)參數(shù)。

MySQL 存儲(chǔ)過程支持三種類型的參數(shù),即輸入?yún)?shù)、輸出參數(shù)和輸入/輸出參數(shù),分別用 IN、OUT 和 INOUT 三個(gè)關(guān)鍵字標(biāo)識(shí)。其中,輸入?yún)?shù)可以傳遞給一個(gè)存儲(chǔ)過程,輸出參數(shù)用于存儲(chǔ)過程需要返回一個(gè)操作結(jié)果的情形,而輸入/輸出參數(shù)既可以充當(dāng)輸入?yún)?shù)也可以充當(dāng)輸出參數(shù)。

需要注意的是,參數(shù)的取名不要與數(shù)據(jù)表的列名相同,否則盡管不會(huì)返回出錯(cuò)信息,但是存儲(chǔ)過程的 SQL 語句會(huì)將參數(shù)名看作列名,從而引發(fā)不可預(yù)知的結(jié)果。

3) 過程體

存儲(chǔ)過程的主體部分,也稱為存儲(chǔ)過程體,包含在過程調(diào)用的時(shí)候必須執(zhí)行的 SQL 語句。這個(gè)部分以關(guān)鍵字 BEGIN 開始,以關(guān)鍵字 END 結(jié)束。若存儲(chǔ)過程體中只有一條 SQL 語句,則可以省略 BEGIN-END 標(biāo)志。

示例:

創(chuàng)建名稱為 ShowStuScore 的存儲(chǔ)過程,存儲(chǔ)過程的作用是從學(xué)生成績信息表中查詢學(xué)生的成績信息

mysql>?DELIMITER?// mysql>?CREATE?PROCEDURE?ShowStuScore() ????->?BEGIN ????->?SELECT?*?FROM?tb_students_score; ????->?END?// Query?OK,?0?rows?affected?(0.09?sec)

結(jié)果顯示 ShowStuScore 存儲(chǔ)過程已經(jīng)創(chuàng)建成功。

更多編程相關(guān)知識(shí),請(qǐng)?jiān)L問:mysql視頻教程!!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊10 分享