重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
下面讲讲关于MySQL自定义函数,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL自定义函数这篇文章你一定会有所受益。
10余年的向阳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整向阳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“向阳网站设计”,“向阳网站推广”以来,每个客户项目都认真落实执行。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自定义函数相关内容,大家还有什么不明白的地方吗?或者想要了解更多相关,可以继续关注我们的行业资讯板块。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。