首頁  >  文章  >  資料庫  >  Mysql函數 的相關解說

Mysql函數 的相關解說

jacklove
jacklove原創
2018-06-14 16:37:241792瀏覽

意義:一組預先編譯好的SQL語句的集合,可以理解成批次語句
#:

  • # #提高程式碼的重用性

簡化操作
#減少了編譯次數並且減少了和資料庫伺服器的連接次數,提高了效率

和預存程序的差異

預存程序

:可以有0個返回,也可以有多個返回,適合做批次插入、批次更新函數

:有且僅有1 個返回,適合做處理資料後返回一個結果
  • 一、函數的語法

    1 .建立
DELIMITER $
CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN
	函数体
END$
DELIMITER ;
  • 注意

  • #參數清單包含兩部分: 參數名稱參數類型

  • 開頭必須要聲明傳回值類型。

  • 函數體中必須有

    return

    語句,沒有會報錯

    使用delimiter 語句設定結束標記

    ----------

    2. 呼叫

    SELECT 函数名(参数列表)
    函數使用由於函數是有回傳值的,所以使用select是可以印出這個值的。

    ==========

    二、案例示範

    1. 無參有回傳函數

    # 案例:傳回學生表的總個數

    1.1 建立函數

    DELIMITER $
    CREATE FUNCTION myFun1() RETURNS INT
    BEGIN 
    	DECLARE num INT DEFAULT 0;  #定义一个变量
    	SELECT COUNT(*) INTO num  #赋值
    	 FROM student;
    	RETURN num;   #返回值
    END $
    DELIMITER ;

    #好後需要執行以下進行編譯

    1.2 呼叫函數

    SELECT  myFun1();


    ----------

    2.有參考有回傳

    案例:根據學生名稱返回分數

    2.1 建立函數

    DELIMITER $
    CREATE FUNCTION myFun2(stuName VARCHAR(20)) RETURNS INT
    BEGIN
    	DECLARE grade INT DEFAULT 0;  #定义变量
    	SELECT s.grade INTO grade #赋值
    	FROM student s
    	WHERE s.name = stuName;
    	
    	RETURN grade;  #返回
    END $
    DELIMITER ;

    2.2 呼叫


    #
    SELECT  myFun2('盖伦');


    ==========

    #三、檢視函數

    SHOW CREATE FUNCTION myFun1;
    #四、刪除函數

    DROP FUNCTION myFun2;

    本文解釋了Mysql函數的相關內容,更多相關推薦請關注php中文網。 相關推薦:

    SQLLite相關內容

    ####Spark SQL實作日誌離線批次####### ########sql 相鄰2筆記錄時間差比較#########

    以上是Mysql函數 的相關解說的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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