一千行MySQL學習筆記(十一)

來源:互聯網
上載者:User

標籤:

--// 儲存函數,自訂函數 ----------

-- 建立
CREATE FUNCTION function_name (參數列表) RETURNS 傳回值類型
函數體

- 函數名,應該合法的標識符,並且不應該與已有的關鍵字衝突。
- 一個函數應該屬於某個資料庫,可以使用db_name.funciton_name的形式執行當前函數所屬資料庫,否則為當前資料庫。
- 參數部分,由"參數名"和"參數類型"組成。多個參數用逗號隔開。
- 函數體由多條可用的mysql語句,流程式控制制,變數聲明等語句構成。
- 多條語句應該使用 begin...end 語句塊包含。
- 一定要有 return 傳回值語句。

-- 刪除
DROP FUNCTION [IF EXISTS] function_name;

-- 查看
SHOW FUNCTION STATUS LIKE ‘partten‘
SHOW CREATE FUNCTION function_name;

-- 修改
ALTER FUNCTION function_name 函數選項


--// 預存程序,自訂功能 ----------

-- 定義
儲存預存程序 是一段代碼(過程),儲存在資料庫中的sql組成。
一個預存程序通常用於完成一段商務邏輯,例如報名,交班費,訂單入庫等。
而一個函數通常專註與某個功能,視為其他程式服務的,需要在其他語句中調用函數才可以,而預存程序不能被其他調用,是自己執行 通過call執行。

-- 建立
CREATE PROCEDURE sp_name (參數列表)
過程體

參數列表:不同於函數的參數列表,需要指明參數類型
IN,表示輸入型
OUT,表示輸出型
INOUT,表示混合型

注意,沒有傳回值。

/* 預存程序 */ ------------------
預存程序是一段可執行性代碼的集合。相比函數,更偏向於商務邏輯。
調用:CALL 過程名
-- 注意
- 沒有傳回值。
- 只能單獨調用,不可夾雜在其他語句中

-- 參數
IN|OUT|INOUT 參數名 資料類型
IN 輸入:在調用過程中,將資料輸入到過程體內部的參數
OUT 輸出:在調用過程中,將過程體處理完的結果返回到用戶端
INOUT 輸入輸出:既可輸入,也可輸出

-- 文法
CREATE PROCEDURE 過程名 (參數列表)
BEGIN
過程體
END

(未完待續)

            (Shocker 來源:http://www.cnblogs.com/shockerli/p/1000-plus-line-mysql-notes.html)

一千行MySQL學習筆記(十一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.