04-MySQL函数

04-MySQL内置函数


数学函数

函数名 作用
ABS(x) 取绝对值
pi() 圆周率
SQRT(x) 平方根函数
MOD(x,y) 取余函数
CEIL(x) 取整函数,返回不小于x的最小整数值(舍弃小数+1),返回BIGINT
CEILING(x) 取整函数,返回不小于x的最小整数值(舍弃小数+1),返回BIGINT
FLOOR(x) 返回不大于x的最大整数值(舍弃小数),返回BIGINT
RAND(x) 返回随机数,范围在0-1至今,x作为种子值
ROUND(x,y) 返回最接近于参数x的整数,对x值进行四舍五入
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) 返回以10为基数的对数
RANDIANS(x) 将参数x由角度转化为弧度
DEGREES(x) 将参数x由弧度转化为角度
SIN(x) 正弦函数
ASIN(x) 反正弦函数
COS(x) 余弦函数
ACOS(x) 反余弦函数
TAN(x) 正切函数
ATAN(x) 反正切函数
COT(x) 余切函数

字符串函数

函数名 作用
CHAR_LENGTH(str) 返回字符串str所包含的字符个数,一个多字节字符串算作一个单字符。
LENGTH(str) 返回字符串的字节长度,使用utf-8编码字符集时,一个汉字是3个字节,一个数字或字母算一个字节
CONCAT(s1,s2…) 返回s1和s2的拼接结果,如果其中某个参数为null,其返回结果是null
CONCAT_WS(x,s1,s2) CONCAT with separator,第一个参数是其他参数的分隔符,如果分隔符为null,那么返回null
INSERT(s1,x,len,s2) 返回s1,其子字符串起始于x位置和被字符串s2取代的len字符,如果x超过了字符串长度,则返回值为原始字符串,加入len的长度大于其他字符串的长度,则从x位置开始替换,任意参数为NULL时,返回NULL
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) 返回s2,其邮编被字符串s2填充至len字符长度
LTRIM(s) 删除空格,字符串左侧空格字符被删除
RTRIM(s) 删除空格,字符串右侧空格字符被删除
TRIM(s) 删除字符串两侧的字符TRIM
TRIM(s1 FROM s) 删除字符串s中两端所有的子字符串s1
REPEAT(s,n) 返回一个由重复的字符串s组成的字符串,字符串的数为n,若n<=0 返回一个空字符串,若s或n为NULL,则返回NULL
SPACE(n) 返回一个由n个空格组成的字符串
REPLACE(s,s1,s2) 使用字符串s2替代字符串s中的所有字符串s1
STRCMP(s1,s2) 若s1和s2的所有字符串都相同,则返回0;若根据当前分类次序,第一个参数小于第二个,返回-1,其他情况返回1
SUBSTRING(s,n,len) 从字符串s返回一个长度同len字符串相同的子字符串,起始于位置n。
MID(s,n,len) 获取指定位置处的子字符串
LOCATE(str1,str) 返回子字符串str1在字符串str中的开始位置
POSITION(str1 IN str) 返回子字符串str1在字符串str中的开始位置
INSTR(str,str1) 返回子字符串str1在字符串str中的开始位置
REVERSE(s) 将字符串s反转,返回的字符串的顺序和s字符串顺序相反
ELT(N,str1,str2,….) 若N=1 ,则返回值为str1,若n=2,返回为str2,由此类推。n位置上不存在,返回null
FIELD(s,s1,s2……) 返回字符串s在列表s1,s2…中第一次出现的位置,找不到就返回0,若s为null ,返回0
FIND_IN_SET(s1,s2) 返回字符串s1在字符串列表s2中出现的位置,字符串列表是一个由多个”,”分开的字符串组成的列表,如果s1不在s2或s2为空字符串,返回0,如果任意一个参数为NULL,则返回值为NULL
MAKE_SET(x,s1,s2,…) 返回由x的二进制数指定的相应位的字符串组成的字符串,s1对应比特1,s2对应比特02

日期和时间函数

函数名 作用
CURDATE()/CURRENT_DATE() 返回当前日期”YYYY-MM-DD”
CURDATE()+0 返回当前日期”YYYYMMDD”
CURRENT_TIMESTAMP() 获取当前系统日期和时间
LOCAKTIME() 获取当前系统日期和时间
NOW() 获取当前系统日期和时间
SYSDATE() 获取当前系统日期和时间
UNIX_TIMESTAMP(date) 把普通格式的时间转换为unix时间戳
FROM_UNIXTIME(date) 把unix时间戳转换为普通格式的时间
UTC_DATE() 返回UTC(世界标准时间)日期值
MONTH(date) 返回date对应的月份
MINTHNAME(date) 返回date对应的月份名称
DAYNAME(d) 返回日期的英文名称,sunday
DAYOFWEEK(d) 返回索引,1为周日
WEEKDAY(d) 返回工作日索引,0为周一
WEEK(d,mode) 计算日期d是一年中的第几周

Mode 一周的第一天 范围 Week1为第一周
0 周日 0~53 本年度中有一个有一个周日周日
1 周一 0~53 本年度中有3天以上
2 周日 1~53 本年度中有一个周日
3 周一 1~53 本年度中有3天以上
4 周日 0~53 本年度中有3天以上
5 周一 0~53 本年度中一个周一
6 周日 1~53 本年度中有3天以上
7 周一 1~53 本年度中有一个周一

条件判断函数

函数名 作用
IF(expr,v1,v2) expr =true (expr<>0 and expr<>NULL),返回v1,否则返回v2
IFNULL(v1,v2) 假如v1不为null,则IFNULL()的返回值为v1,否则其返回值为v2
CASE expr WHEN v1 THEN r1 (WHEN v2 THEN r2)(ELSE rn) END 如果expr值等于某个vn,则返回 对应位置than后面的结果,如果都不相等,返回else后面的rn

系统信息函数

函数名 作用
SELECT VERSION(); 查看MySQL版本号
SELECTCONNECTION_ID(); 查看当前用户的连接数
SHOW PROCESSLIST 输出当前用户的链接信息
SELECT DATABASE(),SCHEMA(); 返回使用utf8字符集的默认数据库名
SELECT USER() 获取当前登录用户名称
CHARSET(str) 返回字符串str自变量的字符集
LAST_INSERT_ID() 自动返回最后一个INSERT或UPDATE为AUTO_INCREMENT列设置的第一个发生的值

加/解密函数PASSWORD(str)

函数名 作用
SELECT PASSWORD(‘newpwd’) 加密
SELECT MD5(‘mypwd’) md5加密
ENCODE(str,pswd_str) 使用pswd_str作为密码,加密str
DECODE(crypt_str,pswd_str) 使用pswd_str作为密码,解码str

你可能感兴趣的:(MySQL)