自定义函数的格式:

CREATE

[DEFINER = { user | CURRENT_USER }]

FUNCTION sp_name ([func_parameter[,...]])

RETURNS type

[characteristic ...] routine_body

func_parameter:

param_name type

type:

Any valid MySQL data type

characteristic:

LANGUAGE SQL

| [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }

| SQL SECURITY { DEFINER | INVOKER }

| COMMENT 'string'

routine_body:

Valid SQL procedure statement

自定义函数与存储过程的区别

1,函数方法的参数列表只允许IN类型的参数,并且不允许指定IN关键字

2,函数方法返回一个单一的值,值的类型在存储方法的头部定义

3,函数方法可以在SQL语句内部调用

4,函数方法不能返回结果集

官方文档:

创建自定义函数

CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL}

BEGIN

//函数实现的语句

END;

aggregate 指定创建的函数是普通的自定义函数,还是AGGREGATE函数。

function_name 是用在SQL声明中以备调用的函数名字。

RETURNS 子句说明函数返回值的类型。

每次服务器启动的时候会重新加载所有有效函数,除非使用--skip-grant-tables参数启动mysqld。在这种情况下, 将跳过UDF的初始化,UDF不可用。

mysql文档说明:一个AGGREGATE函数就像一个MySQL固有的集合(总和)函数一样起作用,比如,SUM或COUNT()函数。要使得AGGREGATE 起作用,mysql.func表必须包括一个type列。如果mysql.func表没有这一 列,则应该运行mysql_fix_privilege_tables脚本来创建此列。

创建自定义函数:

mysql> delimiter //

mysql> DROP FUNCTION IF EXISTS fun_rand_key //

mysql> CREATE FUNCTION fun_rand_key(iparam int) RETURNs int

-> BEGIN

-> declare i_return int;

-> set i_return =iparam + floor(rand()*100);

-> return i_return;

-> END;

-> //

mysql> delimiter ;

使用自定义函数

mysql> select id from tb;

+----+

| id |

+----+

|  1 |

+----+

1 row in set (0.00 sec)

mysql> select fun_rand_key(id) from tb;

+------------------+

| fun_rand_key(id) |

+------------------+

|                9 |

+------------------+

1 row in set (0.00 sec)

查看自定义函数

SHOW CREATE FUNTION function_name;

或   SHOW FUNCTION STATUS [ LIKE '' ];

如:mysql> show function status \G;

*************************** 1. row ***************************

Db: testdb

Name: fun_rand_key

Type: FUNCTION

Definer: root@localhost

Modified: 2013-08-21 14:46:53

Created: 2013-08-21 14:46:53

Security_type: DEFINER

Comment:

character_set_client: gbk

collation_connection: gbk_chinese_ci

Database Collation: gbk_chinese_ci

1 row in set (0.01 sec)

mysql> show function status like '%rand%' \G;

*************************** 1. row ***************************

Db: testdb

Name: fun_rand_key

Type: FUNCTION

Definer: root@localhost

Modified: 2013-08-21 14:46:53

Created: 2013-08-21 14:46:53

Security_type: DEFINER

Comment:

character_set_client: gbk

collation_connection: gbk_chinese_ci

Database Collation: gbk_chinese_ci

1 row in set (0.00 sec)

ERROR:

No query specified

mysql> show create function fun_rand_key \G;

*************************** 1. row ***************************

Function: fun_rand_key

sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITU

TION

Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `fun_rand_key`(

iparam int) RETURNS int(11)

BEGIN

declare i_return int;

set i_return =iparam + floor(rand()*100);

return i_return;

END

character_set_client: gbk

collation_connection: gbk_chinese_ci

Database Collation: gbk_chinese_ci

1 row in set (0.00 sec)

删除自定义函数

DROP FUNCTION [ IF EXISTS ] function_name;

mysql函数返回结果集_MySQL自定义函数相关推荐

  1. linux 变量函数返回值,linux shell 自定义函数(定义、返回值、变量作用域)介绍...

    linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...

  2. c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)

    C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...

  3. oracle自定义函数返回一个表,oracle 自定义函数 返回一个表类型

    oracle 中的函数可以返回表类型 但,这个表类型实际上是集合类型(与数组类似) 这个类型不能直接作为 from 的宾语 从oracle 9i 开始,提供了一个叫做"管道化表函数" ...

  4. mysql 自定义函数实例_mysql自定义函数原理与用法实例分析

    本文实例讲述了mysql自定义函数原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么 ...

  5. rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)

    在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...

  6. mysql 怎么将0女1男_MySQL自定义函数(0显示为女1显示为男

    MySQL自定义函数用法详解 自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所 ...

  7. oracle调用存储过程和函数返回结果集

    视频课:https://edu.csdn.net/course/play/7940 在程序开发中,常用到返回结果集的存储过程,这个在MySQL和sql server 里比较好处理,直接返回查询结果就可 ...

  8. MySQL1为男_MySQL自定义函数(0显示为女1显示为男

    MySQL自定义函数用法详解 自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所 ...

  9. Oracle中过程/函数返回结果集

    http://www.cnitblog.com/wufajiaru/archive/2009/04/28/56796.html Oracle 存储过程返回结果集 关键字: 转载 Sql代码 Oracl ...

  10. 最小值c语言编写自定义函数,C语言笔记55:自定义函数[老九学堂]

    函数定义 return_type function_name ([datetype1 arg1],[datype2 arg2,[...]){ //函数体 } 函数三要素返回值类型 函数名 参数列表 书 ...

最新文章

  1. 871 最低加油次数
  2. 09day ASM单实例安装部署,并在ASM上安装oracle数据库
  3. Python之Matplotlib画图方法
  4. [Egret][文档]遮罩
  5. liunx php的项目地址,在 Linux 配置 PHP 项目
  6. python3 asyncio_asyncio--python3未来并发编程主流、充满野心的模块
  7. 基础数据结构和算法概念
  8. 【java进阶之路】(Java基础篇)[扩展]深入解析String.intern()及字符串常量池问题
  9. CentOS7上实现Squid缓存服务器的两种模式
  10. 注册表修改服务器连接数量,如何通过Win10注册表更改时间服务器参数值?
  11. JLink和JFlash使用方法笔记
  12. 地震matlab频域分析,MATLAB在地震数据分析中的应用
  13. 软件收集-建筑工程资料软件
  14. 辨别尸体死亡时间! [转]
  15. Dynamics 365 CRM 中 打开自定义页面 Xrm.Navigation.navigateTo Open Web Resource
  16. 辛弃疾最有代表性的十首词
  17. 《走进医学》 答案 +期末考试答案 2021年【完整/完结】
  18. 论地震、雷击和个人数据备份
  19. QAX答题页面js逆向分析(二)
  20. R语言对推特twitter数据进行文本情感分析

热门文章

  1. mega linux教程,MegaRAID Storage Manager (MSM)安装使用教程
  2. 清华大学c语言程序设计课件,c语言清华大学课件
  3. 对python程序设计的学习心得_程序设计心得体会-精选模板
  4. 实验二 /*网络嗅探与身份验证*/
  5. opengl交叉编译
  6. Three.js学习07
  7. 数据结构试卷及答案(三)
  8. 燕山大学高数AⅠ复习资料
  9. java汉字的编码_Java中文编码问题小结
  10. BIGWORLD问题集