MySQL学习历程(五):各种函数

1 数学函数

函数 说明
ABS(X) 返回X的绝对值
PI() 返回圆周率,默认显示小数点后6位
SQRT(X) 返回X的平方根
MOD(X, Y) 返回X被Y除后的余数
CEIL(X) 返回不小于X的最小整数值
CEILING(X) 返回不小于X的最小整数值
FLOOR(X) 返回不大于X的最大整数值
RAND() 产生随机数
RAND(X) 产生随机数,若X参数相同,多次执行,产生的随机数相同
ROUND(X) 返回对X进行四舍五入操作后的整数值
ROUND(X, Y) 对X进行四舍五入操作,其值保留到小数点后Y位,若Y为负,则保留到小数点左边Y位
SIGN(X) 返回X的符号,负则返回-1,零则返回0,正则返回1
POW(X, Y) 返回X的Y次幂
POWER(X, Y) 返回X的Y次幂
EXP(X) 返回e的X次幂
LOG(X) 返回X的自然对数
LOG10(X) 返回X的基数为10的对数
RADIANS(X) 角度转化为弧度
DEGREES(X) 弧度转化为角度
SIN(X) 正弦函数
ASIN(X) 正弦函数的反函数
COS(X) 余弦函数
ACOS(X) 余弦函数的反函数
TAN(X) 正切函数
ATAN(X) 正切函数的反函数
COT(X) 余切函数

还有一个函数:TRUNCATE(X, Y)返回X被截掉小数点后Y位的数字,若Y为0,则截掉小数部分,若Y为负,X小数点左边|y|位置0,例如:

TRUNCATE(1.21, 1) = 1.2
TRUNCATE(1.21, 0) = 1
TRUNCATE(31.21, -1) = 30

2 字符串函数

函数 说明
CHAR_LENGTH(str) 计算字符串str的字符个数
CONCAT(s1, s2, …) 拼接s1, s2, …
CONCAT_WS(x, s1, s2, …) 使用分隔符x将s1, s2, …拼接起来
INSERT(s1, x, len, s2) 返回字符串s1,其子字符串起始于x位置和被字符串s2取代的len字符
LOWER(str) 大写字母转为小写
LCASE(str) 大写字母转为小写
UPPER(str) 小写字母转为大写
UCASE(str) 小写字母转为大写
LEFT(s, n) 返回字符串s左边n个字符组成的子串
RIGHT(s, n) 返回字符串s右边n个字符组成的子串
LPAD(s1, len, s2) 返回字符串s1,其左边被字符串s2填补至len字符长度
RPAD(s1, len, s2) 返回字符串s1,其右边被字符串s2填补至len字符长度
LTRIM(s) 删除字符串s左端的空格
RTRIM(s) 删除字符串s右端的空格
TRIM(s) 删除字符串s两端的空格
TRIM(s1 FROM s) 删除字符串s中两端所有的字串s1,未指定s1时默认为空格
REPEEAT(s, n) 返回n个字符串s拼接成的字符串
SPACE(n) 返回一个由n个空格组成的字符串
REPLACE(s, s1, s2) 使用字符串s2替换s中所有的s1
STRCMP(s1, s2) 字符串比较
SUBSTRING(s, n, len) 返回字符串s中从n开始长度为len的子串
MID(s, n, len) 返回字符串s中从n开始长度为len的子串
LOCATE(str1, str) 返回str1在字符串str中的位置
POSITION(str1 IN str) 返回str1在字符串str中的位置
INSTR(str, str1) 返回str1在字符串str中的位置
REVERSE(s) 返回反转后的字符串
ELT(n, s1, s2, …) 返回s1, s2, …中第n个字符串
FIELD(s, s1, s2, …) 返回字符串s在s1, s2, …中所在的位置
FIND_IN_SET(s1, s2) 返回字符串s1在字符串列表s2中的位置
MAKE_SET(x, s1, s2, …) 返回由x的二进制数指定的相应位的字符串组成的字符串

3 日期和时间函数

函数 说明
CURDATE() 返回当前日期
CURRENT_DATE() 返回当前日期
CURTIME() 返回当前时间
CURRENT_TIME() 返回当前时间
CURRENT_TIMESTAMP() 返回当前日期和时间组合
LOCALTIME() 返回当前日期和时间组合
NOW() 返回当前日期和时间组合
SYSDATE() 返回当前日期和时间组合
UNIX_TIMESTAMP() 返回Unix时间戳,1970年之后的秒数
UNIX_TIMESTAMP(date) 返回Unix时间戳,1970年之后的秒数
FROM_UNIXTIME(date) 把Unix格式时间戳转化为普通格式时间
UTC_DATE() 返回当前UTC日期值(世界标准时间)
UTC_TIME() 返回当前UTC时间值
MONTH(date) 返回date对应的月份,1-12
MONTHNAME(date) 返回日期date对应月份的英文名
DAYNAME(d) 返回日期d对应的英文名称,例如Sunday,Monday等
DAYOFWEEK(d) 返回日期d对应一周中的第几天,1表示周日,2表示周一,7表示周六
WEEKDAY(d) 返回日期d对应一周中的第几天,0表示周一,1表示周二,6表示周日
WEEK(d) 日期d是一年中的第几周
WEEK(d, mod) 返回日期d是一年中的第几周,mod可以决定一周是从周几开始的
WEEKOFYEAR(d) 返回某天位于一年中的第几周
DAYOFYEAR(d) 返回日期d是一年中的第几天
DAYOFMONTH(d) 返回日期d是当月中的第几天
YEAR(date) 返回date对应的年份
QUARTER(date) 返回date在一年中的第几季度
MINUTE(time) 返回time中的分钟数
SECOND(time) 返回time中的秒数
EXTRACT(type FROM date) 提取date中的一部分
TIME_TO_SEC(time) 将time转化为秒数
SEC_TO_TIME(seconds) 将秒数转为时分秒形式的时间
DATE_FORMAT(date, format) 将日期时间格式化

计算日期和时间的函数DATE_ADD(),ADDDATE(),DATE_SUB(),SUBDATE(),ADDTIME(),SUBTIME(),DATE_DIFF().

4 条件判断函数、加密解密函数、系统信息函数

函数 说明
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 case语句
VERSION() 返回MySQL服务器版本
CONNECTION_ID() 返回Mysql服务器当前连接的次数
DATABASE() 返回使用utf8字符集的默认数据库名
SCHEMA() 返回使用utf8字符集的默认数据库名
USER() 返回当前被MYsql服务器验证的用户名和主机名组合
CURRENT_USER() 返回当前被MYsql服务器验证的用户名和主机名组合
SYSTEM_USER() 返回当前被MYsql服务器验证的用户名和主机名组合
SESSION_USER() 返回当前被MYsql服务器验证的用户名和主机名组合
CHARSET(str) 返回字符串str使用的字符集
COLLATION(str) 返回字符串str的字符排列方式
LAST_INSERT_ID() 返回最后一个INSERT或UPDATE或AUTO_INCREMENT列设置的第一个发生的值
PASSWORD(str) 加密函数
MD5(str) 计算字符串的MD5 128比特校验和
ENCODE(str, pswd_str) 加密函数
DECODE(crypt_str, pswd_str) 解密函数
FORMAT(x, n) 将数值x保留小数点后n位,结果以字符串形式返回
CONV(n, from_basem, to_base) 将数值n,从一种进制转化为另一种进制
INET_ATON(expr) 将字符串网络地址转化为整型
INET_NTOA(expr) 将数值网络地址转化为字符串网络地址
GET_LOCK(str, timeout) 获取一个锁
RELEASE_LOCK(str) 释放锁
IS_FREE_LOCK(str) 检查锁str是否可以被使用
IS_USED_LOCK(str) 检查锁str是否正在被使用
BENCHMARK(count, expr) 重复执行表达式expr,执行count次
CONVERT(str USING type) 转化字符串str的编码格式
CAST(x AS type) 将x转化为type类型
CONVERT(x, type) 将一个类型的x转化为另一种类型

你可能感兴趣的:(数据库)