MYSQL——自定义函数
来源:互联网 发布:nginx tomcat 配置ssl 编辑:程序博客网 时间:2024/05/01 07:10
自定义函数
用户自定义函数(user-defined function,UDF)是一种对MySQL扩展的途径,其用法与内置函数相同。
函数可以返回任意类型的值,同样可以接收任意类型的值。接收和返回两者没有必然关系。2个必要条件
1.参数 :可以有0个或多个
2.返回值:只能有一个返回值创建自定义函数
CREATE FUNCTION 函数名(参数名1 类型1,参数名2 类型2,…)
RETURNS 返回类型
{STRING|INTEGER|REAL|DECIMAL}
RETURN 函数体
注意:函数必须有返回值,如果无返回值的,应该创建‘存储过程’(函数返回值只能有一个,存储过程可以没有或多个(通过SELECT),而且存储过程可以通过out为变量赋值,而函数不行)
另外,函数的参数最好不要和表的字段名字相同,一定要区分开。关于函数体
1.函数体由合法的SQL语句构成
2.函数体可以是简单的SELECT或INSERT语句(允许用SELECT…INTO 变量来把值写入,但不允许SELECT…来返回结果集,因为函数只允许有一个返回值(切记,SELECT会返回结果集,并不是只有RETURN才可以返回))
3.函数体如果为复合结构则使用BEGIN…END语句
4.复合结构可以包含声明、循环、控制结构- 删除函数
直接使用DROP FUNCTION 函数名。 - 创建不带参数的自定义函数
返回当前时间为年月日时分秒
CREATE FUNCTION f1()
RETURNS VARCHAR(50)
RETURN DATE_FORMAT(NOW(),’%Y年%m月%d日 %H时%i分%s秒’);
调用:SELECT f1();
- 创建带有参数的自定义函数
计算(num1+num2)*2
CREATE FUNCTION f2(num1 INT UNSIGNED,num2 INT UNSIGNED)
RETURNS FLOAT(10,2) UNSIGNED
RETURN (num1+num2)*2;
调用:SELECT f2(2,2); 结果:8
- 创建具有符合结构函数体的自定义函数
表user
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY
username VARCHAR(20) NOT NULL
向表user中添加username返回id
(因为用‘;’会认为是sql的结束语句,所以我们可以自定义一下结束符号,
比如:DELIMITER //)
CREATE FUCTION adduser(name VARCHAR(20))
RETURNS INT UNSIGNED
BEGIN
INSERT user(username) VALUES(name);
RETURN LAST_INSERT_ID();
END
//
调用:SELECT adduser(‘jan’);
- MYSQL——自定义函数
- MySQL自定义函数——流程控制
- MySQL数据库学习——自定义函数
- MySQL学习笔记—自定义函数
- MySQL优化之——自定义存储过程和函数
- MySQL优化之——自定义存储过程和函数
- MySQL知识(八)——自定义函数
- mysql自定义排序规则函数——field()
- # MySQL编程基础——自定义函数返回值
- mysql自定义排序规则函数——field()
- [原创]Mysql自定义函数
- 两个mysql自定义函数
- mysql自定义函数
- MySQL自定义函数
- mysql自定义函数篇
- mysql 自定义函数
- mysql自定义函数篇
- mysql 自定义函数
- 安卓手机分区
- sizeof和strlen的区别
- 将表单你序列化为json对象
- n皇后问题的递归解法
- 个人知乎 ##基础四-多线程
- MYSQL——自定义函数
- codeforces 894B Ralph And His Magic Field
- AB1601定时器1注意事项
- sublime配置ESLint_Linting React/JSX and ES6 Javascript with Eslint in Sublime Text 3
- 浏览器缓存机制
- 个人知乎 ##功能三-评论中心
- Linux-C标准输入输出
- 671. Second Minimum Node In a Binary Tree
- 个人知乎 ##功能四-站内信