MySQL常用函数

1. 数学函数

函数说明
abs(x)返回x的绝对值
ceil(x)返回大于或等于x的最小整数,select ceil(1.5) --返回2
floor(x)返回小于或等于x的最大整数,SELECT FLOOR(1.5) -- 返回1
rand()返回0->1的随机数,select rand() --0.93099315644334
sign(x)返回x的符号,x是负数、0、正数分别返回-1、0和1
pi()返回圆周率(3.141593)
truncate(x,y)返回数值x保留到小数点后y位的值
round(x)返回离x最近的整数 ,SELECT ROUND(1.23456) --1
round(x,y)保留x小数点后y位的值,但截断时要进行四舍五入,SELECT ROUND(1.23456,3) -- 1.235
power(x,y)返回x的y次方,select power(2,3) -- 8
sqrt(x)返回x的平方根,,select sqrt(25) --5
exp(x)返回e的x次方
mod(x,y)返回x除以y以后的余数,select mod(5,3) --2

2. 字符串函数

函数说明
char_length(s)返回字符串s的字符数,SELECT CHAR_LENGTH('你好123') -- 5
length(s)返回字符串s的长度,SELECT LENGTH('你好123') -- 9
concat(s1,s2)将字符串s1,s2等多个字符串合并为一个字符串
concat_ws(x,s1,s2)同CONCAT(s1,s2,...)函数,但是每个字符串直接要加上x
upper(s)将字符串s的所有字母变成大写字母
lower(s)将字符串s的所有字母变成大写字母
left(s,n)返回字符串s的前n个字符
right(s,n)返回字符串s的后n个字符
repeat(s,n)将字符串s重复n次
space(n)返回n个空格
replace(s,s1,s2)将字符串s2替代字符串s中的字符串s1
strcmp(s1,s2)比较s1,s2,返回的值为-1,0,1
substring(s,n,len)获取从字符串s中的第n个位置开始长度为len的字符串
reverse(s)将s字符串反转
load_file(file_name)读入文件并作为一个字符串返回文件内容

3. 日期和时间函数

函数说明
curdate()返回当前时间的年月日 -->2018-09-19
curtime()返回当前时间的时分秒 -->19:59:02
now()返回当前时间的日期和时间 -> 2018-09-19 20:57:43
month(d)返回日期d 如'2011-11-11 11:11:11' 中的月份值
monthname(d)返回日期当中的月份名称,如Janyary
dayname(d)返回日期d是星期几,如Monday,Tuesday
dayofweek(d)日期d今天是星期几,1为星期日,2为星期一 ,以此类推
from_unixtime(10位时间戳)将unix时间戳转换为2017-03-24 11:15:05的格式
unix_timestamp()以UNIX时间戳的形式返回当前时间
week(d)计算日期d是本年的第几个星期,范围是0->53
dayofmonth(d)计算日期d是本月的第几天
dayofyear(d)计算日期d是本年的第几天
quarter(d)返回日期d是第几季节,返回1->4
hour(d)返回d中的小时值
minute(d)返回d中的分钟值
second(d)返回d中的秒钟值
datediff(d1,d2)计算日期d1->d2之间相隔的天数
adddate(d,n)计算日期d加上n天的日期
subdate(d,n)日期d减去n天后的日期

4. 条件判断

函数说明
if(expr,v1,v2)select if(1 > 0,'正确','错误')
ifnull(v1,v2)如果v1的值不为NULL,则返回v1,否则返回v2。

case语法: 第一种,CASE表示函数开始,END表示函数结束。如果e1成立,则返回v1,如果e2成立,则返回v2,当全部不成立则返回vn,而当有一个成立之后,后面的就不执行了

CASE
  WHEN e1
  THEN v1
  WHEN e2
  THEN e2
  ...
  ELSE vn
END

第二种,如果表达式expr的值等于e1,返回v1;如果等于e2,则返回e2。否则返回vn。

CASE expr
  WHEN e1 THEN v1
  WHEN e1 THEN v1
  ...
  ELSE vn
END

5. 系统信息函数

函数说明
version返回数据库的版本号
connection_id()返回服务器的连接数
user()返回当前用户
database()返回当前当前数据库名
last_insert_id()返回最近生成的AUTO_INCREMENT值

6. 加密函数

函数说明
password(str)对str字符串进行加密
md5(str)MD5(str)函数可以对字符串str进行散列,可以用于一些普通的不需要解密的数据加密
sha(str)sha加密
sha1(str)sha1加密
encode(str,key)和decode(str,key)使用key作为密钥加密解密字符串str,这两函数是一对的,,加密和解密,非常值得注意的是对应字段用blob类型

7. 其他函数

函数说明
convert(s using utf8)将s字符串转换成utf8
bin(x)返回 x 的二进制编码
binary(s)将字符串 s 转换为二进制字符串
cast(x as type)转换数据类型 SELECT CAST("2017-08-29" AS DATE); -> 2017-08-29
coalesce(expr1, expr2, ...., expr_n)返回参数中的第一个非空表达式(从左向右)

参考