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