Mysql函數(shù) 的相關(guān)講解

含義:一組預(yù)先編譯好的sql語句的集合,可以理解成批處理語句
作用

  • 提高代碼的重用性

  • 簡化操作

  • 減少了編譯次數(shù)并且減少了和數(shù)據(jù)庫服務(wù)器的連接次數(shù),提高了效率

和存儲過程的區(qū)別
存儲過程:可以有0個返回,也可以有多個返回,適合做批量插入、批量更新
函數(shù):有且僅有1 個返回,適合做處理數(shù)據(jù)后返回一個結(jié)果

一、函數(shù)的語法

1. 創(chuàng)建

DELIMITER $ CREATE FUNCTION 函數(shù)名(參數(shù)列表) RETURNS 返回類型 BEGIN 	函數(shù)體 END$ DELIMITER ;

注意

  • 參數(shù)列表 包含兩部分: 參數(shù)名 參數(shù)類型

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

  • 函數(shù)體中必須有return語句,沒有會報錯

  • 使用 delimiter 語句設(shè)置結(jié)束標記

———-

2. 調(diào)用

select 函數(shù)名(參數(shù)列表)

函數(shù)使用由于函數(shù)是有返回值的,所以使用select是可以打印出這個值的。

==========

二、案例演示

1. 無參有返回函數(shù)

案例:返回學(xué)生表的總個數(shù)

1.1 創(chuàng)建函數(shù)

DELIMITER $ CREATE FUNCTION myFun1() RETURNS INT BEGIN  	DECLARE num INT DEFAULT 0;  #定義一個變量 	SELECT COUNT(*) INTO num  #賦值 	 FROM student; 	RETURN num;   #返回值 END $ DELIMITER ;

定義好后需要執(zhí)行以下進行編譯

1.2 調(diào)用函數(shù)

SELECT  myFun1();

Mysql函數(shù) 的相關(guān)講解

———-

2.有參有返回

案例:根據(jù)學(xué)生名返回分數(shù)

2.1 創(chuàng)建函數(shù)

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 調(diào)用

SELECT??myFun2('蓋倫');

Mysql函數(shù) 的相關(guān)講解

==========

三、查看函數(shù)

SHOW?CREATE?FUNCTION?myFun1;

四、刪除函數(shù)

DROP?FUNCTION?myFun2;

本文講解了mysql函數(shù) 的相關(guān)內(nèi)容,更多相關(guān)推薦請關(guān)注php中文網(wǎng)。

相關(guān)推薦:

SQLLite相關(guān)內(nèi)容

SQLLite相關(guān)內(nèi)容

SQLLite相關(guān)內(nèi)容

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