mysql函数返回结果集_MySQL自定义函数
自定义函数的格式:
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自定义函数相关推荐
- linux 变量函数返回值,linux shell 自定义函数(定义、返回值、变量作用域)介绍...
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.下面说说它的定义方法,以及调用需要注意那些事项. 一.定义shell函数(define function) 语法: [ f ...
- c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)
C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...
- oracle自定义函数返回一个表,oracle 自定义函数 返回一个表类型
oracle 中的函数可以返回表类型 但,这个表类型实际上是集合类型(与数组类似) 这个类型不能直接作为 from 的宾语 从oracle 9i 开始,提供了一个叫做"管道化表函数" ...
- mysql 自定义函数实例_mysql自定义函数原理与用法实例分析
本文实例讲述了mysql自定义函数原理与用法.分享给大家供大家参考,具体如下: 本文内容: 什么是函数 函数的创建 函数的调用 函数的查看 函数的修改 函数的删除 首发日期:2018-04-18 什么 ...
- rds支持mysql自带函数吗_MySQL自定义函数(CREATE FUNCTION)
在使用MySQL的过程中,MySQL 自带的函数可能完成不了我们的业务需求,这时候就需要自定义函数.自定义函数是一种与存储过程十分相似的过程式数据库对象.它与存储过程一样,都是由 SQL 语句和过程式 ...
- mysql 怎么将0女1男_MySQL自定义函数(0显示为女1显示为男
MySQL自定义函数用法详解 自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所 ...
- oracle调用存储过程和函数返回结果集
视频课:https://edu.csdn.net/course/play/7940 在程序开发中,常用到返回结果集的存储过程,这个在MySQL和sql server 里比较好处理,直接返回查询结果就可 ...
- MySQL1为男_MySQL自定义函数(0显示为女1显示为男
MySQL自定义函数用法详解 自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所 ...
- Oracle中过程/函数返回结果集
http://www.cnitblog.com/wufajiaru/archive/2009/04/28/56796.html Oracle 存储过程返回结果集 关键字: 转载 Sql代码 Oracl ...
- 最小值c语言编写自定义函数,C语言笔记55:自定义函数[老九学堂]
函数定义 return_type function_name ([datetype1 arg1],[datype2 arg2,[...]){ //函数体 } 函数三要素返回值类型 函数名 参数列表 书 ...
最新文章
- 871 最低加油次数
- 09day ASM单实例安装部署,并在ASM上安装oracle数据库
- Python之Matplotlib画图方法
- [Egret][文档]遮罩
- liunx php的项目地址,在 Linux 配置 PHP 项目
- python3 asyncio_asyncio--python3未来并发编程主流、充满野心的模块
- 基础数据结构和算法概念
- 【java进阶之路】(Java基础篇)[扩展]深入解析String.intern()及字符串常量池问题
- CentOS7上实现Squid缓存服务器的两种模式
- 注册表修改服务器连接数量,如何通过Win10注册表更改时间服务器参数值?
- JLink和JFlash使用方法笔记
- 地震matlab频域分析,MATLAB在地震数据分析中的应用
- 软件收集-建筑工程资料软件
- 辨别尸体死亡时间! [转]
- Dynamics 365 CRM 中 打开自定义页面 Xrm.Navigation.navigateTo Open Web Resource
- 辛弃疾最有代表性的十首词
- 《走进医学》 答案 +期末考试答案 2021年【完整/完结】
- 论地震、雷击和个人数据备份
- QAX答题页面js逆向分析(二)
- R语言对推特twitter数据进行文本情感分析