MySQL基础——函数

1、数学函数 

表达式 说明
ABS(x) 绝对值函数
PI() 返回圆周率的函数
SQRT(x) 平方根函数
MOD(x, y) 求余函数
CEIL(x) / CEILING(x) 向上取整
FLOOR(x) 向下取整
RAND(x) 返回一个随机浮点数,范围在0到1之间
ROUND(x) 四舍五入,只保留整数部分
ROUND(x,y) 四舍五入,保留小数点后面y位
SIGN(x) 返回参数的符号,x的值为负、零或正时返回结果依次为-1、0 或 1 
POW(x,y)/POWER(x,y) 返回x的y次方的结果值
LOG(x) 返回x的自然对数,x相对于基数e的对数
RANDIANS(x) 将参数x由角度化为弧度
DEGEREES(x) 将参数x由弧度化为角度
SIN(x) 返回正弦,其中x为弧度值
ASIN x的反正弦
COS(x) 返回x的余弦
ACOS(x) 返回x的反余弦

TAN(x)

正切,x为弧度值
ATAN(x) 反正切, x为正切的值
COT(x) 余切

2、字符串函数

表达式 说明
CHAR_LENGTH 计算字符串字符个数
CONCAT(s1,s2,...)

连接字符串。返回结果为连接参数产生的字符串,允许有一个或多个参数,如有任何一个参数为NULL,

则返回值为NULL

CONCAT_WX(x, s1, s2, ....) 连接字符串,第一个参数x为连接符。用法同上
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) 返回字符串最左边的n个字符
RIGHT(s, n) 返回字符串最右边的n个字符
LPAD(s1, len, s2) 返回字符串s1, 其左边由字符串s2填补到len字符串长度。如s1的长度大于len,则返回值被缩短至len字符
RPAD(s1, len, s2)

返回字符串s1, 其右边字符串s2填补至len字符串长度。如字符串s1的长度大于len,则返回被

缩短得到len字符串长度

LTRIM(s) 返回字符串s,字符串左侧空格字符被删除
RTRIM(s) 返回字符串s,字符串右侧空格被删除

TRIM(s)

删除字符串s两侧的空格
TRIM(s1, FROM s) 删除字符串s中两端所有的字符串s1,s1为可选,在未制定情况下,删除空格
REPEAT(s, n) 返回一个由重复的字符串s组成的字符串,字符串s的数目等于n. 若n n<=0,则返回一个空字符串。若 s 或 n 为NULL,则返回 NULL
SPACE(n) 返回一个由 n 个空格组成的字符串
REPLACE(s,s1,s2) 使用字符串s2 代替字符串s中的所有字符串s1
STRCMP(s1,s2)

若所有的字符串均相同,则返回0,若根据当前分类次序,第一个参数小于第二个,则返回-1,其他情况返回1

SUBSTRING(s,n,len) 带有len参数的格式,从字符串s放回一个长度同len字符相同的子字符串,起始于位置n。也可能对n使用一个负值。若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数n个字符,而不是字符串的开头位置

LOCATE(str1、str)

/ POSITION(str1 IN str)

/ INSTR(str,str1)

返回字符串str1 在字符串 str中的开始位置
REVERSE(s) 将字符串s反转
ELT(N, 字符串1,字符串2,字符串3,字符串N)  若N = 1 ,则返回值为字符串1,若N = 2则返回值为字符串2, 以此类推

FIELD(s,s1,s2,....)

返回字符串 s 在列表s1,s2,... 中第一次出现的位置,在找不到s的情况下,返回值为0.如果s为NULL,则返回值为0, 原因是NULL 不能同任何值进行同等比较

FIND_IN_SET(s1,s2)

返回字符串s1 在字符串s2 中出现的位置,字符串列表由多个逗号分考的字符串组成的列表,如果 s1 不在 s2 或 s2 为空字符串,则返回值为0.如任一参数为NULL,则返回NULL。这个汉书在第一个参数包含一个逗号时将无法正常运行。

 

 

 3、日期和时间函数

CURDATE() / CURRENT_DATE() 将当前日期按照 ' YYYY-MM-DD'  或 YYYYMMDD 格式返回,具体格式根据函数在字符串或是数字语境中而定
CURTIME() / CURRENT_TIME() 将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定

CURRENT_TIMESTAMP() 

/ LOCALTIME()

/ NOW()

/ SYSDATE()

返回当前日期和时间值,格式为’YYYY-MM-DD HH:MM:SS‘ 或 YYYYMMDDHHMMSS,具体格式根据函数在字符串或是数字语境中而定
UNIX_TIMESTAMP(date)

若无参数调用,则返回一个Unix时间戳(1970-01-01 00:00:00 GMT之后的秒数)作为无符号整数、其中GMT为格林尼治标准时间。若用date来调用UNIX_TIMESTAMP(),它会将参数值以’1970-01-01 00:00:00‘ GMT后的秒数的形式返回。date可以使一个DATE字符串、DATETIME字符串、TIMESTAMP或一个当地时间的YYMMDD 或 YYYYMMDD格式的数字

FROM_UNIXTIME(date)

把UNIX 时间戳转换为普通格式的时间,与UNIX_TIMESTAMP(date)函数互为反函数
UTC_DATE() 返回当前UTC(世界标准时间)日期值,将当前日期按照 ' YYYY-MM-DD'  或 YYYYMMDD 格式返回,具体格式根据函数在字符串或是数字语境中而定
UTC_TIME() 返回当前时区的时间值,将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定

MONTH(date)

返回date对应的月份,范围值从1~12
MONTHNAME(date) 返回日期date对应月份的英文全名

DAYNAME(d)

获取星期数。 返回d对应的工作日的英文全名,如:Sunday、Monday等
DAYOFWEEK(d) 返回d对应的一周中的索引(位置)。1 表示周日,2表示周一,。。。
WEEKDAY() 返回日期对应的工作日索引

WEEK(d)

计算日期d是一年中的第几周,双参数形式允许指定该星期是否起始于周日或周一,以及返回值的范围是否为从0~53或1~53.
WEEKOFYEAR(d) 计算某天位于一年中的第几周,范围是从1~53。相当于WEEK(d,3)
DAYOFYEAR(d) 返回d是一年中的第几天,范围1~366

DAYOFMONTH(d)

返回指定日期在一个月中的第几天 1~31
YEAR(date) 返回date对应的年份,范围1970~2069
QUARTER() 返回指定日期对应的季度
MINUTE(time) 返回time对应的分钟数,范围0~59
SECOND(time) 返回time对应的秒数, 范围0~59
TIME_TO_SEC(time) 返回已转化为秒的time参数。
SEC_TO_TIME(seconds) 返回被转化为小时、分钟和秒数的 seconds参数值,将当前时间以 'HH:MM:SS' 或 HHMMSS 的格式返回,具体格式根据函数在字符串或是数字语境中而定
TIME_FORMAT(time, format) 根据format字符串安排time值的格式。

4、条件判断函数

IF(expr, v1,v2)  如果表达式expr 是TRUE,返回值为v1 ,否则为v2
IFNULL(v1,v2) 假如v1不为NULL, 则返回v1, 否则返回v2
   

5、系统信息函数 

VERSION() 返回MySQL版本号
CONNECTION_ID() 返回MySQL如武器当前连接的次数,每个链接都有各自唯一的ID
SHOW PROCESSLIST 输出当前用户的连接信息

USER()

/ CURRENT_USER()

/ SYSTEM_USER()

/ SESSION_USER()

返回当前被MySQL服务器验证的用户名和主机名组合
CHARSET(str) 返回字符串str使用的的字符集
LAST_INSERT_ID() 自动返回最后一个INSERT或UODATE为AUTO_INCREMENT列设置的第一个发生的值
   

6、加/解密函数

PASSWORD(str) 返回str加密后的密码字符串
MD5(str) 使用MD5加密字符串
ENCODE(str, pswd_str) 使用pswd_str作为密码,加密str。使用DECODE()解密结果,是一个和str长度相同的二进制字符串
DECODE(crypt_str, pswd_str) 使用pswd_str作为密码,解密加密字符串crypt_str, crypt_str是由ENCODE()返回的字符串
   

7、其他函数

FORMAT(x, n) 将数字x格式化,并以四舍五入方式保留小数点后n位.
INET_ATON(expr) IP地址转数字,将字符串网络点地址转换为数值网络地址..
INET_NTOA(epr) 数字转IP地址, 将数值网络地址转换为字符串网络点地址
   

 

参考: 《MySQL5.7从入门到精通》刘增杰

你可能感兴趣的:(mysql,读书笔记)