一、自定义函数(UDF)的特性和功能 www.2cto.com
函数能分返回字符串,整数或实数;
可以定义一次作用于一行的简单函数,或作用于多行的组的集合函数;
二、基本操作
1、创建自定义函数
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL}
BEGIN
//函数实现的语句
END;
aggregate 指定创建的函数是普通的自定义函数,还是AGGREGATE函数。
function_name 是用在SQL声明中以备调用的函数名字。
RETURNS 子句说明函数返回值的类型。
每次服务器启动的时候会重新加载所有有效函数,除非使用--skip-grant-tables参数启动mysqld。在这种情况下, 将跳过UDF的初始化,UDF不可用。
一个AGGREGATE函数就像一个MySQL固有的集合(总和)函数一样起作用,比如,SUM或COUNT()函数。要使得AGGREGATE 起作用,mysql.func表必须包括一个type列。如果mysql.func表没有这一 列,则应该运行mysql_fix_privilege_tables脚本来创建此列。
示例:
[sql]
mysql> delimiter //
mysql> create function fun_add_rand(
-> in_int int
-> )
-> RETURNS int
-> BEGIN
-> declare i_rand int;
-> declare i_return int;
->
-> set i_rand=floor(rand()*100);
-> set i_return = in_int + i_rand;
->
-> return i_return;
-> END;
-> //
mysql> delimiter ;
2、使用自定义函数
示例:
[sql]
mysql> select id from test_inn;
+------+
| id |
+------+
| 1 |
| 1 |
| 1 |
| 1 |
+------+
mysql> select fun_add_rand(id) from test_inn;
+------------------+
| fun_add_rand(id) |
+------------------+
| 91 |
| 34 |
| 93 |
| 66 |
+------------------+
3、删除自定义函数
DROP FUNCTION [ IF EXISTS ] function_name;
示例:
[sql]
mysql> drop function if exists fun_add_rand;
4、查看自定义函数创建信息
SHOW CREATE FUNTION function_name;
示例:
[sql]
mysql> show create function fun_add_rand;
+--------------+----------+-----------------------------------------------------------+----------------------+----------------------+--------------------+
| Function | sql_mode | Create Function | character_set_client | collation_connection | Database Collation |
+--------------+----------+-----------------------------------------------------------+----------------------+----------------------+--------------------+
| fun_add_rand | | CREATE DEFINER=`root`@`localhost` FUNCTION `fun_add_rand`(
in_int int
) RETURNS int(11)
BEGIN
declare i_rand int;
declare i_return int;
set i_rand=floor(rand()*100);
set i_return = in_int + i_rand;
return i_return;
END | latin1 | latin1_swedish_ci | latin1_swedish_ci |
+--------------+----------+-----------------------------------------------------------+----------------------+----------------------+--------------------+
5、查看自定义函数状态
SHOW FUNCTION STATUS [ LIKE '' ];
示例:
[sql]
mysql> show function status like 'fun%';
+------+--------------+----------+----------------+---------------------+---------------------+---------------+
| Db | Name | Type | Definer | Modified | Created | Security_type |
+------+--------------+----------+----------------+---------------------+---------------------+---------------+
| test | fun_add_rand | FUNCTION | root@localhost | 2012-12-18 20:08:50 | 2012-12-18 20:08:50 | DEFINER |
+------+--------------+----------+----------------+---------------------+---------------------+---------------+
分享到:
相关推荐
mysql自定义函数 在MySQL数据库中,可以通过创建自定义函数来扩展数据库的功能,以便更方便和灵活地处理数据。以下是创建MySQL自定义函数的基本步骤:
本文实例讲述了MySQL自定义函数用法。分享给大家供大家参考,具体如下: 先来一个简单的,创建一个函数将’2009-06-23 00:00:00’这样格式的datetime时间转化为’2009年6月23日0时0分0秒’这样的格式: DELIMITER $...
用MySQL函数实现 小写金额与大写金额的互转,用数据库来实现
主要介绍了MYSQL自定义函数判断是否正整数 的实例代码,主要是使用正则表达式来判断,具体实例代码大家跟随小编一起通过本文学习吧
本文主要给大家介绍的是关于MySQL自定义函数和存储过程的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 1、前置条件 MySQL数据库中存在表user_info,其结构和数据如下: mysql> desc...
本文实例讲述了mysql自定义函数原理与用法。分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么是函数: 函数...
本节主要介绍了MySQL 自定义函数CREATE FUNCTION,下面是示例代码,需要的朋友可以参考下
mysql_function_china_workday使用mysql是json函数,通过给每...wokday.sql自定义函数的sql注意未兼容下班后(例如:18:00)算下一个工作日没有0个工作日概念,所以结果+1不支持mysql 5.6版本测试用,勿适用于生产环境
主要介绍了mysql存储过程之返回多个值的方法,结合实例形式分析了mysql存储过程返回多个值的实现方法与PHP调用技巧,需要的朋友可以参考下
本文主要是分析了一下在工作中写的一个mysql的自定义函数,很简单,仅仅是希望能对大家理解mysql自定义函数有所帮助。
mysql函数-根据经纬度坐标计算距离
MySQL关于自定义函数以及常用函数的组织点的总结(例如日期函数)
主要介绍了MySQL通过自定义函数实现递归查询父级ID或者子级ID,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
Levenshtein_mysql###1、功能描述:mysql 自定义函数。用来计算字符A转换成字符串B所花费的代价,数值越小,代价越低。(换句话来说,就计算两个字符串的相似度,值越小相似度越高)。该实现采用了编辑距离算法,详见...
百度坐标,84坐标,gjc02坐标系之间的转换函数
公司内部项目, HR傻吊录入一些全角字符导致某些功能不生效, 然后就给产品提...本身MYSQL也没自带函数实现, 网上资源搜索许久, 结果都不是MYSQL相关的, 也不知怎么就各种以讹传讹. 坚持想用MYSQL实现, 最后就自写函数咯.