MySQL:常用函数
- 日期时间函数
- 字符串函数
- 数学函数
- 加密函数
在MySQL中,存在许多现成的函数,可以简化部分操作,本博客讲解MySQL中的常用函数。
日期时间函数
- current_date
current_date
函数用于输出当前的日期:
- current_time
current_time
函数用于输出当前的时间:
- now
now
函数用于输出当前的日期和时间:
- date
date
函数用于提取日期时间中的日期部分:
- time
time
函数用于提取日期时间中的时间部分:
- date_add
date_add
函数用于在日期上增加时间,格式如下:
date_add(date, interval d_value_type);
date
是基础时间,而第二个参数是增加的时间,interval
是固定格式,d_value_type
可以以second
,minute
,hour
,day
,week
,month
,year
等为单位
示例:
- date_sub
date_sub
函数用于在日期上减少时间,格式如下:
date_sub(date, interval d_value_type);
与date_add
一样:date
是基础时间,而第二个参数是增加的时间,interval
是固定格式,d_value_type
可以以second
,minute
,hour
,day
,week
,month
,year
等为单位
- datediff
datediff
函数用于计算两个日期之间的差值,以day
为单位:
可以看出,输出的值是第一个日期减去第二个日期。
字符串函数
函数 | 功能 |
---|---|
charset(string) | 返回字符串字符集 |
concat(string [, ...]) | 连接多个字符串 |
instr(string1, string2) | 返回string2 在string1 中出现的位置 |
ucase(string) | 字母转大写 |
lcase(string) | 字母转小写 |
left(string, length) | 从string 中截取左边的length 个字符 |
right(string, length) | 从string 中截取右边的length 个字符 |
length(string) | 返回string 的占用字节数 |
replace(string1, string2, string3) | 在string1 中查找string2 ,并将string2 替换为string3 |
strcmp(string1, strng2) | 比较string1 和string2 的字典序 |
substring(string, position [, length]) | 从string 的position 位置开始,截取length 个字符 |
ltrim(string) | 去除string 左边的空格 |
rtrim(string) | 去除string 右边的空格 |
trim(string) | 去除string 两边的空格 |
此处挑出几个比较复杂的函数讲解:
- length
length
并不是求出字符串中字符的个数,而是字符串占用的字节数:
可以看到,你好世界
四个字符,由于是中文字符,所以最后占用了12 byte
。
- replace
replace
用于替换字符串中的指定字串。
示例:
此处将hello world
中的world
替换为了mysql
。
- substring
substring
用于截取字符串,其第三个参数可省略。
如果带上第三个参数,此时截取指定范围的字符串:
如果不指定第三个参数,则从第二个参数开始,截取到字符串末尾:
数学函数
函数 | 功能 |
---|---|
abs(number) | 求绝对值 |
bin(number) | 十进制转二进制 |
hex(number) | 十进制转十六进制 |
conv(number, from_base, to_base) | 从form_base 进制转化为to_base 进制 |
ceiling(number) | 向上取整 |
floor(number) | 向下取整 |
format(number, decimal_places) | 格式化浮点数 |
rand() | 返回随机浮点数 |
mod(number, denominator) | 取模 |
- conv
conv
函数用于进制转换,其需要同时指定初始进制和转换后进制:
将12
从十进制转八进制:
将12
从十六进制转八进制:
- format
format
函数用于格式化小数点位数,第二个参数表示要保留的小数点位数
对数字123.456789
保留三位小数:
- rand
rand
函数用于生成随机数,范围是[0, 1)
。
加密函数
- md5
md5
函数用于对一个字符串通过md5
哈希函数进行摘要,生成一个32位字符串:
这种函数常用于存储密码,在数据库中一般不会存储明文密码,而是密文。当用户输入密码操作时,经过相同的哈希函数,再与字符串中的密文匹配,从而判断密码是否正确。
如果细心,你会发现在忘记密码的时候,软件往往不会直接告诉你密码,而是重新设置密码。因为数据库中也不知道你的密码是什么,无法告诉你,只能重新设置。
相比于md5
,其实password
更常用于加密。
- password
password
函数用于对密码加密,原理也是哈希函数。
相比于md5
,password
加密后的数据位数更多些。