天天看點

資料庫自定義函數

一、函數

  在資料庫中都有函數,這些函數屬于系統函。除此之外使用者也可以編寫使用者自定義函數。使用者定義函數是存儲在資料庫中的代碼塊,可以把值傳回到調用程式。調用時如同系統函數一樣,如max(value)函數,其value被稱為參數。函數一般功能比較簡單,對于mysql函數隻有傳入參數,不像存儲過程一樣,有輸入輸出參數。

  資料庫函數特點如下:

存儲函數将向調用者傳回一個且僅傳回一個結果值。

存儲函數嵌入在sql中使用的,可以在select中調用,就像内建函數一樣,比如cos()、hex()。

存儲函數的參數類型類似于IN參數。

二、自定義函數

自定義函數簡單文法:

CREATE FUNCTION 函數名稱(

  變量名稱 類型,

  變量名稱 類型

)

RETURN 類型

BEGIN

  -- 聲明, 語句要完成的操作,

RETURN 變量;

END;

三、執行個體

  例子中的函數使用mysql作為例子。

表結構如下:

   1、不帶參數的函數

   表示擷取person表的所有記錄,沒有參數,有數值傳回值。

  2、帶有參數的函數

  表示通過id擷取年齡,有id參數,有數值傳回值。

  3、函數其他指令

  函數的功能一般都是比較簡單的,如求某個值,格式轉換等。不像存儲過程,一般邏輯都比較複雜。