mysql自定义函数的分号_MySQL之自定义函数实例讲解
转自:https://www.2cto.com/database/201804/740205.html
MySQL中已经有很多函数,如时间函数等,但是有时这些函数不能满足自己的设计需求,此时需要自定义函数,用户自定义函数(User-defined functuin,UDF)是对MySQL的扩展,其用法和内置函数相同
函数需要具备:参数 返回值
对于函数体中的部分可以是:
1、函数体由合法的SQL语句组成
2、函数体可以是简单的select或者insert语句
3、函数体若为复合结构则使用begin...end语句
4、复合结构可以包含声明、循环、控制结构
1、无参数
知道通过now()函数可以显示日期和时间,如果想把这个时间表达成:“年月日时分秒” 的形式怎么办呢?通过使用格式化函数DATE_FORMAT()
1
mysql>select DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点:%i分:%s秒');
由于该过程书写较为麻烦,如果经常使用很不方便,因此将其“制作”成函数
1
2
mysql>create FUNCTION f1()returns varchar(30)
->RETURN DATE_FORMAT(NOW(),'%Y年:%m月:%d日 %H点:%i分:%s秒');
由于在定义f1()的时候没有参数,因此调用时就可以直接调用
1
mysql>select f1();
2、带有参数
带有一个以上的参数时,这里求解两个数的平均数
1
2
3
mysql>create FUNCTION f2(num1smallint unsigned,num2smallint unsigned) #函数名
->RETURNS FLOAT(10,2) UNSIGNED #返回值的类型
->RETURN (num1+num2)/2; #返回值
3、创建具有复合结构的函数
首先创建一个数据表test
1
2
3
root@localhost test>create table test(id tinyint(3) unsignedprimary key auto_increment,
-> usernamevarchar(30)not null
-> );
现在想往数据表中插入记录,返回值是新插入的记录的id号
1
root@localhost test>insert into testvalues(default,'Lj.K');
由于分号是命令的结束,因此这里需要修改默认的分隔符,否则在输入分号之后无法返回新插入记录的id,因此使用命令
1
DELIMITER 分隔符
这样所有的命令均需要以分隔符来结束
比这将分隔符修改为//,则所有命令均需要以 // 为结束
1
2
3
4
5
6
7
root@localhost test>create FUNCTION adduser(usernamevarchar(20)) #创建添加参数名为username的函数adduser
->RETURNS INT UNSIGNED
->BEGIN
->INSERT test(username)VALUES(username);
->RETURN LAST_INSERT_ID();
->END
-> //
这里因为有两条语句 insert test(username) values(username)和return last_insert_id()两条语句要执行,因此需要使用BEGIN...END语句,从而构成聚合体
1
2
root@localhost test>select adduser('Rose');
-> //
1
2
root@localhost test>DELIMITER ;
root@localhost test>select adduser('Tom');
通过drop function命令进行删除
Mysql - 存储过程/自定义函数
在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...
mysql创建自定义函数与存储过程
mysql创建自定义函数与存储过程 一 创建自定义函数 在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题 mysql ...
navicat与phpmyadmin做mysql的自定义函数和事件
自定义函数和事件是mysql一个很方便的功能,navicat在5.1以上版本就支持了自定义函数和事件,phpmyadmim不清楚. 用这个是由于一些简单的事情,没有必要去做一个服务器计划使用 接下来我 ...
【MySQL】分页查询实例讲解
MySQL分页查询实例讲解 1. 前言 本文描述了团队在工作中遇到的一个MySQL分页查询问题,顺带讲解相关知识点,为后来者鉴.本文的重点不是"怎样"优化表结构和SQL语句,而是探 ...
MySQL(六) —— 自定义函数
自定义函数 用户自定义函数(user-defined function, UDF)是一种对MySQL扩展的途径,其用法与内置函数相同. 参数,返回值 创建自定义函数 CREATE FUNCTION f ...
MySQL之自定义函数
引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利,比如我前面提到过的聚合函数SUM().AVG()以及日期时间函数等等,可是我们总会出现其他的需求:我们需要 ...
MySQL 创建自定义函数
语法:Create function function_name(参数列表)returns返回值类型 函数体 函数名,应合法的标识符,不应与系统关键字冲突. 一个函数应该属于某个数据库,可以使用db_ ...
mysql增加自定义函数功能
mysql默认是不能自定义函数的 当create function时 This function has none of DETERMINISTIC, NO SQL, or READS SQL DAT ...
MySQL 创建自定义函数(1)
1. 创建测试自定义函数(1) CREATE DEFINER=`dbdh`@`localhost` FUNCTION `test`.`sp_function_dbdh_three`() RETURNS ...
随机推荐
你不一定懂的cpu显示信息
在linux命令中用top查看系统的情况,在cpu这一行有一些分部表示什么 下面有一篇博文,对此写的非常清楚,特转载.猛击下面的链接 http://www.cnblogs.com/yjf512/p/3 ...
Dynatable – 基于 HTML5 &; jQuery 的交互表格插件
Dynatable 一款有趣的,语义化,交互式的表格插件,使用 jQuery,HTML5 和 JSON 实现.Dynatable 的目的是提供一种简单的.可扩展的 API,能够轻松的浏览和操作大规模的 ...
rtc关机闹钟6 AlarmManagerService研究
这个是 private void setLocked(int type, long when) { if (mNativeData != 0) { // The kernel n ...
快的打车 技术部 在 杭州 招聘 #年前面试 年后入职#架构师 - 内推网(neitui.me)
快的打车 技术部 在 杭州 招聘 #年前面试 年后入职#架构师 - 内推网(neitui.me) 陈丹 (cd**@kuaidadi.com) 01-18 发布了内推 #年前面试 年后入职#架构师 • ...
解决tomcat开始出现in production environments was not found on the java.library.path:xxx
如图所看到的,Eclipse中启动tomcat时出现not found on the java.library.path等信息.能够通过下载tomcat-native-1.1.32-win32-bin ...
sqlserver isnull判断
--在新增或编辑的时候设置默认值或加isnull判断 Sql isnull函数 ISNULL(columName, 0)<>35 或 ISNULL(columName, '')
Filter,FilterChain,FilterConfig
实例: package com.zillion.app.filter; import java.io.IOException; import javax.servlet.Filter; import ...
HDFS在web端无法访问文件
解决办法1: [root@djt002 hadoop]# vi /etc/selinux/config 改为 SELINUX=disabled 解决办法2: 查看你的$HADOOP_HOME/etc/ ...
利用gulp解决微信浏览器缓存问题
做了好多项目,这次终于要解决微信浏览器缓存这个令人头疼的问题了.每次上传新的文件,在微信浏览器中访问时,总要先清除微信的缓存,实在麻烦,在网上搜罗了很多解决办法,终于找到了方法:利用gulp解决缓存问 ...
Android-DateTimeAndroidUtil-工具类
DateTimeAndroidUtil-工具类 是关于时间日前相关的公用方法: package liudeli.mynetwork01.utils; import android.util.Log; ...
mysql自定义函数的分号_MySQL之自定义函数实例讲解相关推荐
- mysql自定义函数的分号_MySQL基础(三)—函数、自定义函数
上一篇 MySQL基础(二)-操作表记录 这一篇是对函数的笔记,其中操作的数据库在上一篇文章中有代码,可以去看一下. 1.函数 1.1:函数的分类 字符函数 数值运算符与函数 比较运算符与函数 日期时 ...
- mysql自定义函数的分号_MySQL基础(三)―函数、自定义函数
MySQL基础(二)―操作表记录 这一篇是对han的笔记,其中操作的数据库在上一篇文章中有代码,可以去看一下. 字符函数 数值运算符与函数 比较运算符与函数 日期时间函数 信息函数 聚合函数 加密函数 ...
- mysql自定义函数的分号_MySQL 第八篇:自定义函数、存储过程、游标-阿里云开发者社区...
我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论. 自定义函数 一.函数的概念与定义 1.理解函数 函数可以看作是 ...
- mysql相隔多长时间_Mysql 计算时间间隔函数
mysql计算时间差函数 MySql计算两个日期的时间差函数TIMESTAMPDIFF用法,只要用一句SQL语句就可以办到了. MySql计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法 ...
- mysql group语句可以排序_MySQL中group_concat()函数的排序方法
示例一 group_concat()函数的参数是可以直接使用order by排序,下面通过例子来说明,首先看下面的t1表. 比如,我们要查看每个人的多个分数,将该人对应的多个分数显示在一起,分数要从高 ...
- mysql自定义函数的分号_mysql自定义function问题解决
最近公司生产环境的系统有个需求,需要往mysql数据库的一张表里批量添加数据,业务部门给的数据大致如下: 中心 3.5L箱子(条码) 8L箱子(条码) 15L箱子(条码) 20L箱子(条码) 浙江物流 ...
- mysql group by 字符串拼接_MySQL之GROUP_CONCAT()函数——将查询到的数据拼接成字符串...
语法: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC |DE ...
- mysql的聚合函数综合案例_MySQL常用聚合函数详解
一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...
- mysql函数数组参数_MYSQL数组聚合函数,如PostgreSQL array_agg
我在MYSQL上有两个表,我想知道MYSQL上是否有任何聚合函数作为array_agg()FROM postgreSQL. 表1属性仅有8条记录 表2捕获该属性的记录,因此对于同一属性有时可以是1或n ...
最新文章
- The Shortest Statement CodeForces - 1051F LCA+最短路
- TensorFlow支持Unicode,中文NLP终于省心了
- 解题报告:【kuangbin带你飞】专题四 最短路练习题
- 【Android 逆向】Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 )
- 数据中心基础设施建设方案
- 对抗高并发拯救系统架构,我们并不需要复仇者联盟|深圳活动
- bzoj2005: [Noi2010]能量采集
- python基础教程zip密码_python基础教程Python实现加密的RAR文件解压的方法(密码已知)...
- tomcat如何查找请求资源的?
- 被嫌弃的互联网的 “一生”(上)
- Android抽屉页面效果
- (winform)在一个form里面显示google地图
- java.lang.OutOfMemoryError: GC overhead limit exceeded 问题分析和解决(转)
- PHP面向对象常见符号总结($this- 、self ::)
- 1047: 对数表 C语言
- (C语言版)百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱, 用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?
- Miscellaneous | 恭喜本人博客进入2万名以内,多谢各位支持!
- 案例研究 | 瓜子二手车战略升级三部曲
- 金蝶K3开发-委外入库批量核销和反核销
- 阿里DataV 2016双十一媒体大屏回顾技术分享