四、MySQL函数
一、数学函数
-
绝对值函数ABS(X)
-
返回圆周率的函数PI();
-
平方根SQRT(X)
-
求余MOD(X,Y);
-
获取整数的函数
-
CEIL(X)返回不小于X的最小整数值
-
CEILING(X)返回不小于X的最小整数值
-
FLOOR(X)返回不小大X的最小整数值
-
-
获取随机数的函数
-
RAND()
-
RAND(X)返回一个随机浮点数值v,范围在0到1,不带参数的RAND()每次产生的随机数值不同,当参数x相同时,将产 生相同的随机数,不同参数产生不同随机数
-
-
ROUND(x)返回最接近参数x的整数
-
ROUND(X,Y)返回最接近参数x的整数,其值保留到小数点后面y位
-
TRUNCATE(X,Y) 返回舍去至小数点后y位的数字x
-
符号函数SIGN(x):返回参数的符号,x的值为负、零或正时返回结果一次为-1、0或1.
-
幂运算
-
POW(X,y)、POWER(X,y)返回x的y次方的结果值
-
EXP(X)返回e的x乘方后的值
-
-
数运算 LOG(X)LOG10(X)
二、字符串函数
-
CHAR_LENGTH(str): 返回字符串中的字符个数
-
LENGTH(str):返回字符串的字节长度。
-
CONCAT(s1,s2....)连接参数产生新字符串
-
CONCAT_WS (X,s1,s2):拼接 X为分隔符
-
INSERT(s1,x,len,s2):替换字符串,返回s1
-
返回指定长度的字符串
-
LEFT(s,n):返回字符串s开始的最左边n个字符
-
RIGHT(s,n)
-
-
填充字符串
-
LPAD(s1,len,s2)
-
RPAD(s1,len,s2)
-
在s1左/右拼接s2
-
-
删除空格LTRIM(s)RTRIM(s)TRIM(s)
-
删除指定字符串的函数TRIM(s1 FROM s):删除s中两端所有的字符串s1,
-
重复生成字符:REPEAT(s,n)
-
空格函数SPACE(n):返回一个有n个空格组成的字符串
-
替换函数REPLACE(s,s1,s2)使用字符串s2代替字符串s中所有的字符串s1.
-
比较字符串大小的函数STRCMP(s1,s2):如所有的字符串均相同,则返回0,如根据当前分类次序,第一个参数小于第二个,则返回-1,其他返回1.
-
获取字符串函数SUBSTRING(s,n,len)、MID(s,n,len):两个作用相同,从字符创的s的n位置开始截取长度为len的字符。
-
匹配子串开始的函数:LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1):3个函数作用相同。返回字符串str1在字符串str中的开始位置。
-
字符串逆序的函数REVERSE(s):将字符串反转。
-
返回指定位置的字符串的函数:ELT(N,值1,值2,值3.....);N为数字类型几返回该位置的值。
-
返回指定字符串的位置的函数:FIELD(s,s1,s2,s3......);返回字符串s在列表s1,s2...中第一次出现位置。
-
返回子串位置的函数FILD_IN_SET(s1,s2):返回字符串s1在字符串列表s2中出现的位置,字符串列表是一个由多个逗号分开的字符串组成的列表;
-
选取字符串的函数MAKE_SET(X,s1,s2,....):返回由X的二进制数指定的相应位置的字符串组成的字符串。
三、日期函数
-
获取当前日期/当前时间
CURDATE()/CURRENT_DATE()作用相同,返回当前日期 YYYYMMDD
CURTIME()/CURRENT_TIME()作用相同,返回当前时间
HHMMSS CURRENT_TIME()/CURRENT_DATE()+0将日期/时间转成数值型
CURRENT_TIMESTAMP()/LOCALTIME()/NOW()/SYSDATE(); -
获取月份的函数
MONTH(date)返回date对应的月份 -
获取星期的函数
DAYNAME(d)返回d对应的工作日的英文名称
DAYOFWEEK(d)返回d对应的一周中的索引
WEEKDAY(d)返回d对应的工作日的索引
WEEK(d):计算日期d是一年中的第几周
WEEKOFYEAR(d):计算某天是一年中的第几周 -
获取天数的函数
DAYOFWEEK(d)返回d是一年中的第几天
DAYOFMONTH(d)返回是一个月中的第几天 -
获取年份、季度、小时、分钟和秒钟的函数
YEAR(date) 返回date对应的年份
QUARTER(date) 返回date对应一年中的季度值。
MINUTE(time) 返回time对应的分钟数。
SECOND(time) 返回time对应的秒数 -
获取日起指定值的函数
EXTRACT(type FORM date): type取值 YEAR YEAR_MONTH
时间和秒钟转换函数
TIME_TOS_SEC(time): 转成秒
SEC_TO_TIME(seconds):转成HH:MM:SS -
计算日期和时间的函数
DATE_ADD -
将日期和时间格式转化的函数
DATE_FORMAT(date,format)
TIME_FORMAT(time,format)
GET_FORMAT(val_type,format_type);
四、条件判断函数
-
IF(expr,v1,v2):如果表达式expr是TRUE则返回v1,否则返回v2
-
IFNULL(v1,v2):假如v1不为null,则返回v1,否则返回v2。
-
CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END:如果表达式expr值等某个vn则返回对应位置THEN后面的结果。
五、系统信息
-
VERSION()返回指定MySQL服务器版本的字符串。
-
CONNECTION_ID():返回MySQL服务器当前连接的次数。每个连接都有唯一的ID
-
SHOW PROCESSLIST();/SHOW FULL PROCESSLIST: 显示有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出那些有问题的查询语句等。DATABASE()和SCHEMA()函数返回使用utf8字符集的默认(当前)数据库名称。
-
获取用户名函数:USER(),CURRENT_USER()、SYSTEM_USER()、SESSION_USER()
-
获取字符串的字符集合排序方式:CHARSET(str) 返回字符串 str自变量的字符集;
-
COLLATION(str)返回字符串str的字符排列方式
-
获取最后一个自动生成的ID值的函数 LAST_INSERT_ID()
六、其他函数
-
不同进制转化函数:CONV(N,from_base,to_base)
-
IP地址和数字相互转换的函数:INET_ATON(expr)
-
加锁函数和解锁函数:
-
GET_LOCk(str,timeout)设法使用字符串str给定的名字得到一个锁,持续时间timeout秒。
-
RELEASE_LOCK(str)解开被GET_LOCK()获取的,用字符串str所命名的锁,
-
IS_FREE_LOCK(str)检查锁是否可用
-
IS_USED_LOCK(str) 检查锁是否正在使用
-
-
重复执行指定操作的函数 BENCHMARK(count,expr)重复count次执行表达式expr
-
改变字符集的函数 CONVERT(str USING 字符集)
-
改变数据类型的函数 CAST(x,AS type) CONVERT(X,type)