首頁 >資料庫 >mysql教程 >sql預存程序的寫法是什麼

sql預存程序的寫法是什麼

青灯夜游
青灯夜游原創
2021-01-22 14:26:2624559瀏覽

寫法為「CREATE PROCEDURE 過程名稱 ([過程參數]) 過程體 [過程參數 ] 格式 [IN|OUT|INOUT] 參數名稱 型態」。過程名稱應盡量避免選取與內建函數相同的名稱,否則會發生錯誤;過程體以BEGIN開始,END結束。

sql預存程序的寫法是什麼

本教學操作環境:windows7系統、mysql5.8版、Dell G3電腦。

(推薦教學:mysql影片教學

MySQL 預存程序是一些SQL 語句的集合,例如有時候我們可能需要一大串的SQL 語句,或者說在寫SQL 語句的過程中需要設定一些變數的值,而這個時候我們就完全有必要寫一個預存程序。

編寫預存程序並不是件簡單的事情,但是使用預存程序可以簡化操作,且減少冗餘的操作步驟,同時,還可以減少操作過程中的失誤,提高效率,因此應該盡可能的學會使用預存程序。

以下主要介紹如何建立預存程序。

可以使用CREATE PROCEDURE 語句建立預存程序,語法格式如下:

CREATE PROCEDURE <过程名> ( [过程参数[,…] ] ) <过程体>
[过程参数[,…] ] 格式
[ IN | OUT | INOUT ] <参数名> <类型>

語法說明如下:

##1) 過程名稱

#預存程序的名稱,預設在目前資料庫中建立。若需要在特定資料庫中建立預存程序,則要在名稱前面加上資料庫的名稱,即 db_name.sp_name。

要注意的是,名稱應盡量避免選取與 MySQL 內建函數相同的名稱,否則會發生錯誤。

2) 過程參數

預存程序的參數清單。其中,696a1cf5abbd1d584a59efe5c6c38de9為參數名,efa10bd96cd333b49f1a149a6df83f3b為參數的型別(可以是任何有效的 MySQL 資料型別)。當有多個參數時,參數清單中彼此間以逗號分隔。預存程序可以沒有參數(此時預存程序的名稱後仍需加上一對括號),也可以有 1 個或多個參數。

MySQL 預存程序支援三種類型的參數,即輸入參數、輸出參數和輸入/輸出參數,分別以 IN、OUT 和 INOUT 三個關鍵字標識。其中,輸入參數可以傳遞給一個預存程序,輸出參數用於預存程序需要傳回一個操作結果的情形,而輸入/輸出參數既可以充當輸入參數也可以充當輸出參數。

要注意的是,參數的取名不要與資料表的列名相同,否則儘管不會傳回出錯訊息,但是預存程序的SQL 語句會將參數名看作列名,從而引發不可預知的結果。

3) 過程體

預存程序的主體部分,也稱為預存程序體,包含在程序呼叫的時候必須執行的 SQL 語句。這個部分以關鍵字 BEGIN 開始,以關鍵字 END 結束。若預存程序體中只有一條 SQL 語句,則可以省略 BEGIN-END 標誌。

範例:

建立名稱為ShowStuScore 的儲存過程,預存程序的作用是從學生成績資訊表中查詢學生的成績資訊

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

結果顯示ShowStuScore 預存程序已經建立成功。

更多程式相關知識,請造訪:

程式設計入門! !

以上是sql預存程序的寫法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn