转载地址:http://www.2cto.com/database/201212/177382.html

一、自定义函数(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入门学习之十三:自定义函数的基本操作相关推荐

  1. mysql添加函数库_创建mysql函数

    如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...

  2. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码

    mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...

  3. mysql8自定义安装位置_【MySQL】Windows10:MySQL 8 自定义路径安装

    目录 一.MySQL官网下载 二.MySQL安装 三.mysql常用登录和快捷进入cmd操作 一.MySQL官网下载 (一)MySQL下载地址:https://dev.mysql.com/downlo ...

  4. mysql sleep详解_关于MySQL的SLEEP(N)函数

    都知道通过在MySQL中执行select sleep(N)可以让此语句运行N秒钟: mysql> select sleep(1); +----------+ | sleep(1) | +---- ...

  5. mysql数据库内置函数大全_(MariaDB)MySQL内置函数大全

    本文目录: 1. 字符串函数 1.1 字符串连接函数 1.2 lower().upper().left().right() 1.3 填充函数lpad()和rpad() 1.4 trim().ltrim ...

  6. mysql xp系统时间_【MySQL】时间函数

    获取当前日期时间函数 now() 获得当前日期+时间(date + time) mysql> select now(); +---------------------+ | now() | +- ...

  7. mysql zerofill设置方法_在MySQL中使用ZEROFILL设置自定义自动增量

    让我们首先创建一个表.这里.我们使用ZEROFILL和AUTO_INCREMENT设置了UserId列mysql> create table DemoTable1831 ( UserId int ...

  8. mysql slave是什么_是mysql作用

    php连接mysql数据库基础 bool define ( string name, mixed value [, bool case_insensitive] )define函数作用是定义常量 de ...

  9. mysql数据生产数据分析_基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程...

    基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程 课程目录 (1)SQL与数Ju分析;目录中文件数:23个 (1) 开课-课时3SQL与数Ju库的价值.flv (2) ...

  10. mysql 查询存储过程 速度_查询mysql过程

    MySql 使用explain分析查询 今天写了个慢到哭的查询,想用explain分析下执行计划,后来发现explain也是有局限性的: EXPLAIN不会告诉你关于触发器.存储过程的信息或用户自定义 ...

最新文章

  1. 多个PHP版本环境搭建(nginx,php)
  2. RunJar是什么进程?
  3. (十三)真题模拟【告诉你答案是什么】
  4. System.getProperty(user.dir); 获得系统属性
  5. 2013计算机系统导论,【精选】2013计算机系统导论-期末考卷-发布.pdf
  6. UI设计中颜色的前进色与后退色
  7. flink source 同步_大数据面试题-Flink
  8. Jenkins pipeline 入门到精通系列文章
  9. oracle 10gchuanjianyonghu,管理Oracle 10g Dataguard归档缺口问题
  10. 一个防御SQL注入攻击需要注意的问题
  11. Android自定义View的构造函数
  12. 廖雪峰Git教程笔记
  13. 根据主题不同,引用不同的资源文件
  14. 合成分红游戏源码_ThinkPHP宠物养成合成类游戏APP陀螺世界程序源码 已优化
  15. PLSQL入门与精通(第56章:用PLSQL读写文件)
  16. android系统锁屏锁怎么解决方法,安卓手机忘记锁屏密码解决方法【图文详解】...
  17. 和i77700性能一样的服务器cpu,Intel八代i7 8700K和七代i7 7700K性能对比测验
  18. “遛狗不牵绳-违法”--遛狗不牵绳识别检测 助力智慧城市犬类管理
  19. 微信开发与应用实验一、创建微信公众号
  20. 均值方差模型python_Python机器学习之“选择最优模型”

热门文章

  1. golang type 说明和使用
  2. sqlmap地表最强sql注入检测工具学习使用
  3. bec初级第一课_在您的第一个初级开发人员工作中如何生存和发展
  4. 前端中心化管理API使用说明
  5. 一文搞定Python正则表达式
  6. 从 Flink 应用场景出发,了解它的设计思路
  7. 使用 postman 进行接口测试
  8. Python列表排序 list.sort方法和内置函数sorted
  9. ASP.NET定制简单的错误处理页面
  10. leetcode10:Regular Expression Matching