05-03-函数
函数
在MySQL
中函数分为两类:系统函数(内置函数)和自定义函数。使用方式都是 select 函数名(参数列表);
内置函数
字符串函数
-
char_length()
:判断字符串的字符数 -
length()
:判断字符串的字节数 -
concat()
:连接字符串 -
instr()
:判断字符在目标字符串中是否存在,存在返回其位置,不存在返回0 -
lcase()
:全部小写 -
left()
:从左侧开始截取,直到指定的位置(位置如果超过字符串长度,则截取所有) -
ltrim()
:消除左边对应的空格 -
mid()
:从中间指定位置开始截取,如果不指定截取长度,直接到最后
时间函数
-
now()
:返回当前时间,日期和时间 -
curdate()
:当前日期 -
curtime()
:当前时间 -
datediff()
:判断两个日期之间的天数差距,参数日期必须使用字符串格式 -
date_add()
:进行时间的增加date_add('日期',interval 时间数字 type)
type
:day``hour``minute``second
-
unix_timestamp()
:获取时间戳 -
from_unixtime()
:将指定时间戳转换成对应的日期时间格式
数学函数
-
abs()
:绝对值 -
ceiling()
:向上取整 -
floor()
:向下取整 -
pow()
:求指数,谁的多少次方 -
rand()
:获取一个随机数(0-1之间) -
round()
: 四舍五入函数
其他函数
-
md5()
:对数据进行md5
加密 -
version()
:获取版本号 -
database()
:显示当前所在数据库 -
UUID()
:生成一个唯一标识符
自定义函数
自定义函数:用户自己定义的函数
函数:实现某种功能的语句块(由多条语句组成)
-
函数内部的每条指令都是一个独立的个体即需要符合语句定义基本规范,使用
;
分号结束符 -
函数是一个整体,而且函数是在调用的时候才会被执行,那么当设计函数的时候,意味着整体不能被中断
-
MySQL
一旦见到语句结束符分号,就会自动开始执行解决方案:在定义函数之前,临时修改语句结束符
基本语法:
delimiter
临时修改语句结束符:
delimiter 新符号
中间为正常
SQL
指令,使用分号结束,但是这个时候系统不会执行使用新符号结束
修改语句结束符:
delimiter ;
创建函数
自定义函数包含几个要素:function
关键字、函数名、参数(形参和实参)、确认函数返回值类型、函数体、返回值
自定义函数基本语法:
修改语句结束符
create function 函数名(形参) returns 返回值类型
begin
函数体
return 返回值数据;
end
语句结束符
修改语句结束符
-- 创建自定义函数
-- 修改语句结束符
delimiter $$
create function my_fun1() returns int
begin
return 10;
end
-- 结束
$$
-- 将语句结束符修改回来
delimiter ;
查看函数
-
通过查看
function
状态,查看所有的函数show function status [like 'pattern']
-
查看函数的创建语句,
show create function 函数名字;
调用函数
与内置函数的调用方式一样
删除函数
drop function 函数名;
注意事项
- 自定义函数属于用户级别的:只有当前客户端对应的数据库中可以使用
- 可以在不同的数据库下看到自定义的函数,但是不能跨库使用
- 自定义函数通常是为了将多行代码集合到一起解决一个重复性的问题