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