您好,登錄后才能下訂單哦!
下面講講關(guān)于MySQL自定義函數(shù),文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完MySQL自定義函數(shù)這篇文章你一定會(huì)有所受益。
1.自定義函數(shù)簡(jiǎn)介
自定義函數(shù):用戶自定義函數(shù)(user-defined function,UDF)是一種對(duì)MySQL擴(kuò)展的途徑,其用法與內(nèi)置函數(shù)相同
自定義函數(shù)的兩個(gè)必要條件:(1)參數(shù) (2)返回值
自定義函數(shù):
創(chuàng)建自定義函數(shù)
CREATE FUNCTION function_nameRETURNS{STRING|INTEGER|REAL|DECIMAL} routine_body
關(guān)于函數(shù)體:
1.函數(shù)體可以由合法的SQL語(yǔ)句構(gòu)成;
2.函數(shù)體可以是簡(jiǎn)單的SELECT或INSERT語(yǔ)句;
3.函數(shù)體如果為復(fù)合結(jié)構(gòu)則使用BEGIN...END語(yǔ)句;
4.復(fù)合結(jié)構(gòu)可以包含聲明、循環(huán)、控制結(jié)構(gòu)。
2.創(chuàng)建不帶參數(shù)的自定義函數(shù)
創(chuàng)建日期時(shí)間為年月日點(diǎn)分秒格式
mysql> CREATE FUNCTION f1() RETURNS VARCHAR(30) -> RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H點(diǎn):%i分:%s秒'); Query OK, 0 rows affected (0.00 sec) mysql> SELECT f1();+-------------------------------------+| f1() |+-------------------------------------+| 2016年11月28日 08點(diǎn):34分:55秒 |+-------------------------------------+
3.創(chuàng)建帶有參數(shù)的自定義函數(shù)
創(chuàng)建可以計(jì)算2個(gè)數(shù)的平均值的函數(shù)
mysql> CREATE FUNCTION f2(num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED) -> RETURNS FLOAT(10,2) UNSIGNED -> RETURN (num1+num2)/2; Query OK, 0 rows affected (0.00 sec) mysql> SELECT f2(10,16);+-----------+| f2(10,16) |+-----------+| 13.00 |+-----------+
4.創(chuàng)建具有符合結(jié)構(gòu)函數(shù)體的自定義函數(shù)
可以通過(guò)“DELIMITER 分隔符”修改MySQL中的默認(rèn)結(jié)束符
刪除函數(shù):
DROP FUNCTION [IF EXISTS] function_name
如果自定義函數(shù)存在符合結(jié)構(gòu),多個(gè)語(yǔ)句,函數(shù)體要包含在BEGIN...END內(nèi),同時(shí),需要通過(guò)DELIMITER將默認(rèn)的結(jié)束符 ; 修改成其他符號(hào),如:// $$ ,以免函數(shù)由于語(yǔ)句結(jié)尾的 ; 號(hào)導(dǎo)致中斷
mysql> DELIMITER //mysql> CREATE FUNCTION adduser(username VARCHAR(20)) -> RETURNS INT UNSIGNED -> BEGIN -> INSERT test(username) VALUES(username); -> RETURN LAST_INSERT_ID(); -> END -> // mysql> DELIMITER ; mysql> SELECT adduser('Tom');+----------------+| adduser('Tom') |+----------------+| 3 |+----------------+ mysql> SELECT adduser('Rool');+-----------------+| adduser('Rool') |+-----------------+| 4 |+-----------------+ mysql> SELECT * FROM user;+----+----------+| id | username |+----+----------+| 1 | Drive || 2 | Cve || 3 | Tom || 4 | Rool |+----+----------+
對(duì)于以上MySQL自定義函數(shù)相關(guān)內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。