MySQL常用函数

Posted by dks on May 29, 2019

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) 返回参数中的第一个非空表达式(从左向右)

参考