含義:一組預(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();
———-
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('蓋倫');
==========
三、查看函數(shù)
SHOW?CREATE?FUNCTION?myFun1;
四、刪除函數(shù)
DROP?FUNCTION?myFun2;
本文講解了mysql函數(shù) 的相關(guān)內(nèi)容,更多相關(guān)推薦請關(guān)注php中文網(wǎng)。
相關(guān)推薦:
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END