mysql 自定义函数入门_【转】MYSQL入门学习之十三:自定义函数的基本操作
转载地址: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入门学习之十三:自定义函数的基本操作相关推荐
- mysql添加函数库_创建mysql函数
如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...
- 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码
mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...
- mysql8自定义安装位置_【MySQL】Windows10:MySQL 8 自定义路径安装
目录 一.MySQL官网下载 二.MySQL安装 三.mysql常用登录和快捷进入cmd操作 一.MySQL官网下载 (一)MySQL下载地址:https://dev.mysql.com/downlo ...
- mysql sleep详解_关于MySQL的SLEEP(N)函数
都知道通过在MySQL中执行select sleep(N)可以让此语句运行N秒钟: mysql> select sleep(1); +----------+ | sleep(1) | +---- ...
- mysql数据库内置函数大全_(MariaDB)MySQL内置函数大全
本文目录: 1. 字符串函数 1.1 字符串连接函数 1.2 lower().upper().left().right() 1.3 填充函数lpad()和rpad() 1.4 trim().ltrim ...
- mysql xp系统时间_【MySQL】时间函数
获取当前日期时间函数 now() 获得当前日期+时间(date + time) mysql> select now(); +---------------------+ | now() | +- ...
- mysql zerofill设置方法_在MySQL中使用ZEROFILL设置自定义自动增量
让我们首先创建一个表.这里.我们使用ZEROFILL和AUTO_INCREMENT设置了UserId列mysql> create table DemoTable1831 ( UserId int ...
- mysql slave是什么_是mysql作用
php连接mysql数据库基础 bool define ( string name, mixed value [, bool case_insensitive] )define函数作用是定义常量 de ...
- mysql数据生产数据分析_基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程...
基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程 课程目录 (1)SQL与数Ju分析;目录中文件数:23个 (1) 开课-课时3SQL与数Ju库的价值.flv (2) ...
- mysql 查询存储过程 速度_查询mysql过程
MySql 使用explain分析查询 今天写了个慢到哭的查询,想用explain分析下执行计划,后来发现explain也是有局限性的: EXPLAIN不会告诉你关于触发器.存储过程的信息或用户自定义 ...
最新文章
- 多个PHP版本环境搭建(nginx,php)
- RunJar是什么进程?
- (十三)真题模拟【告诉你答案是什么】
- System.getProperty(user.dir); 获得系统属性
- 2013计算机系统导论,【精选】2013计算机系统导论-期末考卷-发布.pdf
- UI设计中颜色的前进色与后退色
- flink source 同步_大数据面试题-Flink
- Jenkins pipeline 入门到精通系列文章
- oracle 10gchuanjianyonghu,管理Oracle 10g Dataguard归档缺口问题
- 一个防御SQL注入攻击需要注意的问题
- Android自定义View的构造函数
- 廖雪峰Git教程笔记
- 根据主题不同,引用不同的资源文件
- 合成分红游戏源码_ThinkPHP宠物养成合成类游戏APP陀螺世界程序源码 已优化
- PLSQL入门与精通(第56章:用PLSQL读写文件)
- android系统锁屏锁怎么解决方法,安卓手机忘记锁屏密码解决方法【图文详解】...
- 和i77700性能一样的服务器cpu,Intel八代i7 8700K和七代i7 7700K性能对比测验
- “遛狗不牵绳-违法”--遛狗不牵绳识别检测 助力智慧城市犬类管理
- 微信开发与应用实验一、创建微信公众号
- 均值方差模型python_Python机器学习之“选择最优模型”