MySQL中的函数

在MySQL中函数分为两类,系统函数(内置函数)和自定义函数

不管是内置函数还是用户自定义函数,都是使用select 函数名(参数列表)

 

内置函数

 

字符串函数

char_length():判断字符串的字符数

length():判断字符串的字节数(与字符集)

concat():连接字符串

instr():判断字符在目标字符串中是否存在,存在返回其位置,不存在返回0      //从1开始

lcase():全部小写

left():从左侧开始截取字符串,直到指定位置(位置如果超过长度,则截取所有)

ltrim():消除左边对应空格

mid():从中间指定位置开始截取,如果不指定截取,直接到最后                      //从1开始

 

时间函数

now():返回当前时间:日期 时间

curdate():返回当前日期

curtime():返回当前时间

datediff():判断两个日期之间的天数差距

date_add(日期,interval 时间数字 type):进行时间的增加

               type:year/month/day/hour/minute/second....只要符合标准即可

unix_timestamp():获取时间戳(从格林威治时间开始)

from_unixtime():将指定时间戳转换成对应的日期格式

 

数学函数

abs():绝对值

ceiling():向上取整

floor():向下取整

pow():求指数,谁的多少次方

rand():获取随机数(0-1)

round():四舍五入函数

 

其他函数

md5():对数据进行md5加密(MySQL中的md5与其他任何地方的md5加密出来的内容是完全相同的)

version():获取版本号

database():显示当前所在的数据库

UUID():生成一个唯一标识符(自增长,不过自增长是单表唯一,UUID是整库唯一:数据唯一同时空间唯一)

 


自定义函数

函数是实现某种功能的语句块(由多条语句组成)

1、函数内部的每条指令都是一个独立的个体,需要复合语句定义规范:需要语句结束符,分号;

2、函数是一个整体,而且函数是在调用的时候才会被执行,那么当设计函数的时候,意味着整体不能被中断

3、MySQL一旦见到语句结束符分号,就会自动开始执行

 

解决方案:在定义函数之前,尝试修改临时的语句结束符

基本语法:dalimiter

       修改临时语句结束符:delimiter 新符号(可以使用系统非内置即可$$)

中间为正常SQL指令:使用分号结束(系统不执行分号)

使用新符号结束

修改回语句结束符:delimiter ;

 

创建函数

自定义函数包含几个要素:function关键字,函数名,参数(形参和实参[可选]),确认函数返回值类型,函数体,返回值

语法:

修改语句结束符

create function 函数名(形参)  returns 返回值类型

begin

      //函数体

      return返回值数据;   //数据必须与结构中定义的返回值类型一致

end

语句结束符

修改语句结束符(还原)

  // 如果函数体本身只有一条指令(return),那么可以省略begin和end

 

形参:在MySQL中需要为函数的形参指定数据类型

语法: 变量名 字段类型

create function my_func3(int_1 int,int_2 int) returns int
return int_1 + int_2; 

 

查看函数

1、可以通过查看function状态,查看所有函数

show function status [like 'pattern'];

 

2、查看函数的创建语句:Show create function 函数名 ;

 

调用函数

自定义函数的调用与内置函数的调用一样

语法:select 函数名(参数列表)

 

删除函数

语法:drop function 函数名;

 

注意事项:

1、自定义函数属于用户级别,只有当前客户对应的数据库中可以使用

2、可以在不同的数据库在看到所有函数,但是不能调用

3、自定义函数:通常是为了将多行代码集合到一起解决一个重复性问题

4、函数因为必须规范返回值,那么在函数内部不能使用select指令,除了变量赋值:select 字段 into @变量;

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值