字符串函数
concat(s1,s2…sn)把传入的参数连接成一个字符串
注意:任何字符串与NULL进行连接的结果都将是NULL
insert(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长度的字串替换为instr
lower(str)、upper(str)函数:把字符串转化成小写或大写
left(str,x) 和 right(str,x)函数:分别返回字符串str最左/最右的x个字符
注意:参数x不可省略,当为null时,返回null。
lpad(str, n, pad) 和 rpad( str, n, pad) 函数:用字符串pad对str最左边和最右边进行填充使得整个字符串长度为n
ltrim(str)和 rtrim(str)函数:去掉字符串str左侧和右侧的空格
repeat(str, x) 函数:将字符串str重复x次
replace( str, a, b)函数:用字符串b替换str中出现的所有字符串a
strcmp(s1, s2)函数:比较字符串s1和s2的ASCII码值的大小
如果s1比s2小返回-1,相等返回0,s1比s2大返回1 。
trim(str)函数:去掉字符串str开头和结尾的空格
substring(str, x, y)函数:返回字符串str中的第x位置起长度为y的字符串
数值函数
abs(X)函数:返回x的绝对值
ceil(X)函数:对数x向上取整
floor(X)函数:对数x向下取整
mod(X, Y)函数:返回x/y的模(取余数)
注意: x或y任意一个为null时结果为null,y为0时结果也为null。
rand()函数:返回0~1内的随机数
round(x, y) 函数:返回参数x的四舍五入的有y位小数的值
如果y省略则默认y为0,即不留小数位;这个函数通常用来统一数据格式。
注意: 对于整数即使规定了小数位也不会补0,这与老版本有所区别。
truncate(X, Y)函数:将数字x进行截断,只保留y位小数
当截断位数不足时补0
下面并没有补0软件显示问题
日期和时间函数
curdate() 函数:返回当前时间,只有年月日
curtime()函数:返回当前时间,只有时分秒
now()函数:返回当前的日期和时间,包含年月日时分秒
unix_timestamp(date)函数:返回日期date的unix时间戳
from_unixtime(unixtime)函数:返回unixtime时间戳的日期值;与上面的函数互为逆操作
week(DATE)year(DATE)函数:返回所给date是哪一年,是一年中第几周
hour(time)、minute(time)second(time)函数:返回所给时间的小时/分钟/秒
monthname(date)dayname(date)函数:返回date的英文月份/星期名称
date_format(date, fmt) 函数:按字符串格式fmt格式化日期date的值
date_add(date,interval expr type) 函数:返回与所给日期date相差一定时间间隔的日期
datediff(date1,date2)函数:计算两个日期之间相差(date1-date2)的天数
流程函数
if( value, t, f)函数:如果value为真返回t,否则返回f
ifnull(value1,value2)函数:value1不为空返回value1,否则返回value2
该函数常用来替换表中的null值。
case [expr] when [value1] then [result1] …else [default] end 函数:按条件分类
其它常用函数
# database()函数:返回当前数据库名
select database();
# version()函数:返回当前数据库版本
select version();
# user()函数:返回当前登陆用户名
select user();
# inet_aton(IP)函数:返回IP地址的网络字节序表示
select inet_aton('192.168.1.1');
# inet_ntoa(num)函数:返回网络字节序代表的IP地址
select inet_ntoa(3232235521);
# 上面两个函数的主要作用是对IP的相互转化,它可以实现ip地址的比较,比如某个表里存了很多IP地址,
# 你如要想要找到ip在‘192.168.1.3’和‘192.168.1.20’之间一共有多少个IP地址时,
# 如果直接用ip比较,那么它会一个字符一个字符的比较,比较到3和2时由于3大于2导致这两个ip之间是没有其它ip的,
# 这显然不对,因此需要转为网络字节序来进行比较:
select * from t where inet_aton(ip) >= inet_aton('192.168.1.3') and inet_aton(ip) <= inet_aton('192.168.1.20');
# password(str)函数:返回字符串str的加密版本,一个41位长的字符串
select password('123456');
# md5(str)函数:返回字符串str的MD5值,可对数据加密
select md5('123456');