数学函数

  1. GREATEST[greatest]():获取一组数中的最大值。
    MySQL--常用函数总结
  2. LEAST[least]():获取一组数中的最小值。

    MySQL--常用函数总结
  3. FLOOR[floor]():获取小于一个数的最大整数值(向下取整)。

    MySQL--常用函数总结
  4. CEILING[ceiling]():获取大于一个数的最小整数值(向上取整)。

    MySQL--常用函数总结
  5. ROUND[round]():获取一个数的四舍五入的整数值。

    MySQL--常用函数总结
  6. ROUND[round](x,d):获取一个数四舍五入保留固定小数的数值。x指要处理的数,d是指保留几位小数。
      这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均为0;

    MySQL--常用函数总结
  7. TRUNCATE[truncate]():把一个数字截取为指定小数个数的数字。x指要处理的数,d是指保留几位小数。
      这里有个值得注意的地方是,当小数位数超过d位,其他后边的数字直接舍去,不会进行四舍五入;当小数位数不够d位,补0。

    MySQL--常用函数总结
  8. ABS[abs]():获取一个数的绝对值。

    MySQL--常用函数总结
  9. SIGN[sign]():返回数字的符号,正数(1)、负数(-1)、零(0)。

    MySQL--常用函数总结
  10. SQRT[sqrt]():返回一个数的平方根。

    MySQL--常用函数总结
  11. POW[pow](x,y):返回X的Y次方。

    MySQL--常用函数总结
  12. SIN[sin]()/COS[cos]()/TAN[tan]():返回一个角度(弧度)的正弦、余弦和正切值。

    MySQL--常用函数总结
  13. ASIN[asin]()/ACOS[acos]()/ATAN[atan]():返回一个角度(弧度)的反正弦、反余弦和反正切值。

    MySQL--常用函数总结
  14. RADIANS[radians](x):返回x的弧度值,从度转换为弧度。

    MySQL--常用函数总结
  15. DEGREES[degrees](x):返回x的角度值,从弧度转换为角度值。

    MySQL--常用函数总结
  16. PI[pi]():返回Π(pi)的值。默认的显示小数位数是7位,然而 MySQL内部会使用完全双精度值。

    MySQL--常用函数总结
  17. BIN[bin]()/OCT[oct]()/HEX[hex]():返回一个数的二进制、八进制和十六进制值,这个值作为字符串返回。

    MySQL--常用函数总结
  18. EXP[exp](X):返回值e(自然对数的底)的x次方。

    MySQL--常用函数总结
  19. LN[ln](X):返回x的自然对数,即x相对于基数e的对数。

    MySQL--常用函数总结
  20. LOG[log](x,y):返回x的以y为底的对数。

    MySQL--常用函数总结
  21. MOD[bin]():返回x/y的模(余数)。

    MySQL--常用函数总结
  22. RAND[rand]()/RAND[rand](N):返回[0,1]内的随机值。若已指定一个整数参数N ,则它被用作种子值,用来生成一个指定的值。

    MySQL--常用函数总结

聚合函数

聚合函数常常用于对一组值进行计算,然后返回单个值
聚合函数通常与GROUP BY子句一起使用。如果SELECT语句中一个GROUP BY子句,则这个聚合函数对不同分组下的所有列起作用;如果没有,则SELECT语句只产生一行作为结果

  测试数据如下:


MySQL--常用函数总结

  1. COUNT[count](col):返回指定列中非NULL值的个数。

    MySQL--常用函数总结
  2. MAX[max](col):返回指定列的最大值。

    MySQL--常用函数总结
  3. MIN[min](col):返回指定列的最小值。

    MySQL--常用函数总结
  4. SUM[sum](col):返回指定列的所有值之和。

    MySQL--常用函数总结
  5. AVG[avg](col):返回指定列的平均值。

    MySQL--常用函数总结
  6. VARIANCE[variance](col):返回指定列的方差。

    MySQL--常用函数总结

方差的计算说明:

  1. 计算相关列的平均值;
  2. 求列中的每一个值和平均值的差;
  3. 计算差值的平方的总和;
  4. 用总和除以(列中的)值的结果。
  1. STDDEV/STD[stddev/std](col):返回指定列的标准差。标准差等于方差的平均根,因此STDDEV(col)和SQRT(VARIANCE(col))这两个表达式是相等的。

    MySQL--常用函数总结
  2. GROUP_CONCAT[group_concat]([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’]):返回由属于一组的列值连接组合而成的结果。默认多值之间用’,'分割,不过还可以去重,排序以及指定分隔符。

    MySQL--常用函数总结
  3. BIT_AND\BIT_OR\BIT_XOR[bit_and\bit_or\bit_xor]]():与二进制运算符&(与) 、|(或)和^(异或)相对应的聚合函数,返回一列中的所有值进行与运算、或运算及异或运算后的结果。

    MySQL--常用函数总结
    BIN()用于将结果转换为二进制位:

    MySQL--常用函数总结

字符串函数

  1. ASCII[ascii](char):返回字符的ascii码值。

    MySQL--常用函数总结
  2. CHAR[char](x1,x2,x3…):将x1、x2、x3…的ASCII码转换为字符,结果组合成一个字符串。

    MySQL--常用函数总结
  3. LEFT\RIGHT[left\right](str,x):分别返回从字符串左边和右边开始指定的x个字符。

    MySQL--常用函数总结
  4. TRIM\LTRIM\RTRIM[trim\ltrim\rtrim](str):删除字符串首部和尾部的所有空格、删除字符串前面(左边)的空格以及删除字符串尾部(右边)的空格。

    MySQL--常用函数总结
  5. LPAD\RPAD[lpad\rpad](str,n,pad):分别用字符串pad对字符串str的左边和右边进行填补直至str中字符数目达到n个,最后返回填补后的字符串。若str中的字符数目大于n,则返回str的前n个字符。

    MySQL--常用函数总结
  6. REPLACE[replace](str1,str2,str3):用字符串str3替换str1中所有出现的字符串str2,最后返回替换后的字符串。

    MySQL--常用函数总结
  7. CONCAT[concat](s1,s2,…,sn):用于连接指定的几个字符串。

    MySQL--常用函数总结
  8. CONCAT_WS[concat_ws](separator,s1,s2,…,sn):用于连接指定的几个字符串,并用指定分隔符分割。

    MySQL--常用函数总结
  9. SUBSTRING[substring](str,start,length):截取字符串str,start、length均为整型,前者指定子串的开始位置,后者指定子串的长度。

    MySQL--常用函数总结
  10. LENGTH[length](str):返回一个字符串的长度。

    MySQL--常用函数总结
  11. STRCMP[strcmp](s1,s2):比较两个字符串,如果这两个字符串相等返回0,如果s1根据当前排序顺序小于s2返回-1,否则返回1。

    MySQL--常用函数总结
  12. BIT_LENGTH[bit_length](str):返回字符串的比特长度。注意,在获取字符串比特长度时,不同编码获取的比特长度是不一样的。

    MySQL--常用函数总结
  13. INSERT[insert](str,x,y,instr):将字符串str从第x位置开始的y个字符替换位字符串instr,并返回替换后的字符串。

    MySQL--常用函数总结
  14. FIND_IN_SET[find_in_set](str,list):分析逗号分割的list列表,如果存在str,返回str在list中的位置,如果没有str,返回0。

    MySQL--常用函数总结
  15. LCASE\LOWER[lcase\lower](str):将字符串str中所有字符转变为小写并返回。

    MySQL--常用函数总结
  16. UCASE\UPPER[ucase\upper](str):将字符串str中所有字符转变为大写并返回。

    MySQL--常用函数总结
  17. POSITION[position](substr IN str):返回子串substr在字符串str中第一次出现的位置。
  18. LOCATE[locate](substr,str):返回子串substr在字符串str中第一次出现的位置。
  19. INSTR[instr](str, substr):返回子串substr在字符串str中第一次出现的位置,与LOCATE()只是参数的顺序相反。

    MySQL--常用函数总结
  20. REPEAT[repeat](str,x):返回字符串str重复x次的结果。

    MySQL--常用函数总结
  21. REVERSE[reverse](str):返回字符顺序颠倒的字符串str。

    MySQL--常用函数总结
  22. QUOTE[quote](str):用反斜杠转义str中的单引号。

日期时间函数

  1. NOW[now]():返回当前的日期和时间,它以YYYY-MM-DD HH:MM:SS的格式返回当前的日期和时间。

    MySQL--常用函数总结
  2. CURDATE\CURRENT_DATE[curdate\current_date]():返回当前日期。

    MySQL--常用函数总结
  3. CURTIME\CURRENT_TIME[curtime\current_time]():返回当前时间。

    MySQL--常用函数总结
  4. YEAR[year]():返回时间日期值中的年份部分。

    MySQL--常用函数总结
  5. MONTH\MONTHNAME[month\monthname]():分别以数值和字符串的格式返回时间日期值中月的部分。

    MySQL--常用函数总结
  6. DAY\DAYNAME[day\dayname]():分别以数值和字符串的格式返回时间日期值中天的部分。

    MySQL--常用函数总结
  7. HOUR\MINUTE\SECOND[hour\minute\second]():返回指定时间值的小时、分钟和秒的部分。

    MySQL--常用函数总结
  8. DAYOFYEAR\DAYOFMONTH\DAYOFWEEK[dayofyear\dayofmonth\dayofweek]():返回这一天在一年,一月及一星期中的序号。

    MySQL--常用函数总结
  9. WEEK\YEARWEEK[week\yearweek]():返回指定日期是一年的第几个星期、是哪一年的第几个星期。

    MySQL--常用函数总结
  10. DATE_ADD\DATE_SUB[date_add\date_sub](date,INTERVAL int keyword):对日期和时间进行添加和减少时间间隔的算数操作。

    MySQL--常用函数总结
    MySQL--常用函数总结

说明
date:需要的日期和时间。
INTERVAL:关键字表示一个时间间隔。
int:需要计算的时间值。
keyword:间隔值的关键字。

关键字列表

关键字 间隔值的格式 关键字 间隔值的格式
DAY 日期 MINUTE 分钟
DAY_HOUR 日期:小时 MINUTE_SECOND 分钟:秒
DAY_MINUTE 日期:小时:分钟 MONTH
DAY_SECOND 日期:小时:分钟:秒 SECOND
HOUR 小时 YEAR
HOUR_MINUTE 小时:分钟 YEAR_MONTH 年-月
HOUR_SECOND 小时:分钟:秒
  1. DATE_FORMAT[date_format](date,format):返回以不同的格式显示日期/时间数据。

    MySQL--常用函数总结

说明
date:需要的日期和时间。
format:规定日期/时间的输出格式。

输出格式列表

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微妙
%H 小时(00-23)
%h 小时(01-12)
%I 小时(01-12)
%i 分钟,数值(00-59)
%j 年的天(001-366)
%k 小时(0-23)
%l 小时(1-12)
%M 月名
%m 月,数值(00-12)
%p AM或PM
%r 时间,12-小时(hh:mm:ss AM或PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间,24-小时(hh:mm:ss)
%U 周(00-53)星期日是一周的第一天
%u 周(00-53)星期一是一周的第一天
%V 周(01-53)星期日是一周的第一天,与%X使用
%v 周(01-53)星期日是一周的第一天,与%x使用
%W 星期名
%w 周的天(0=星期日,6=星期六)
%X 年,其中的星期日是周的第一天,4位,与%V使用
%x 年,其中的星期一是周的第一天,4位,与%v使用
%Y 年,4位
%y 年,2位
  1. UNIX_TIMESTAMP[unix_timestamp](datetime):把日期\时间转换成时间戳形式。

    MySQL--常用函数总结
  2. FROM_UNIXTIME[from_unixtime](ts,fmt):根据指定的fmt格式,格式化unix时间戳ts。
    MySQL--常用函数总结
  3. QUARTER[quarter](date):返回date在一年中的季度(1-4)。

    MySQL--常用函数总结

控制流函数

  1. IFNULL[ifnull](expr1,expr2):判断参数expr1是否为NULL,当参数expr1为NULL时返回expr2,不为NULL时返回expr1。返回值是数字或字符串。

    MySQL--常用函数总结
  2. NULLIF[nullif](expr1,expr2):用于检验expr1与expr2是否相等,如果相等,则返回NULL,如果不相等则返回expr1。

    MySQL--常用函数总结
  3. ISNULL[isnull](expr):判断expr是否为NULL,如果为空则返回1,否则返回0。

    MySQL--常用函数总结
  4. IF[ifl](expr1, expr2, expr3):expr1是要被判断的表达式,如果表达式为真,则返回第二个参数expr2;如果为假,则返回第三个参数expr3。

    MySQL--常用函数总结
  5. CASE WHEN [test1] THEN [result1] … ELSE [default] END:如果test(n)为真,则返回result(n),否则返回default。

    MySQL--常用函数总结
  6. CASE [test] WHEN [val1] THEN [result1] … ELSE [default] END:如果test=val(n),则返回result(n),否则返回default。

    MySQL--常用函数总结

格式化函数

  1. FORMAT[format](x,y):将数值格式化为整数或者带几位小数的浮点数(四舍五入)。参数x是被格式化的数据,参数y是结果的小数位数。

    MySQL--常用函数总结
  2. DATE_FORMAT\TIME_FORMAT[date_format\time_format](date|time,fmt):用来格式化日期和时间值。date和time是需要格式化的日期和时间值,fmt是日期和时间值格式化的形式。

    MySQL--常用函数总结

说明 :
date:需要的日期和时间。
format:规定日期/时间的输出格式。

输出格式列表

格式 描述
%a 缩写星期名
%b 缩写月名
%c 月,数值
%D 带有英文前缀的月中的天
%d 月的天,数值(00-31)
%e 月的天,数值(0-31)
%f 微妙
%H 小时(00-23)
%h 小时(01-12)
%I 小时(01-12)
%i 分钟,数值(00-59)
%j 年的天(001-366)
%k 小时(0-23)
%l 小时(1-12)
%M 月名
%m 月,数值(00-12)
%p AM或PM
%r 时间,12-小时(hh:mm:ss AM或PM)
%S 秒(00-59)
%s 秒(00-59)
%T 时间,24-小时(hh:mm:ss)
%U 周(00-53)星期日是一周的第一天
%u 周(00-53)星期一是一周的第一天
%V 周(01-53)星期日是一周的第一天,与%X使用
%v 周(01-53)星期日是一周的第一天,与%x使用
%W 星期名
%w 周的天(0=星期日,6=星期六)
%X 年,其中的星期日是周的第一天,4位,与%V使用
%x 年,其中的星期一是周的第一天,4位,与%v使用
%Y 年,4位
%y 年,2位
  1. INET_ATON \INET_NTOA[inet_ntoa\inet_aton]():前者可以把IP地址转换为数字,后者可以把数字转换为IP地址。

    MySQL--常用函数总结

类型转换函数

  1. CAST[cast](expr AS type):把当前数值转换成指定类型的值,但并不会改变值列的数据类型。expr是要转换的值,type是转换后的数据类型。

    ![CAST](https://img-blog.csdnimg.cn/20200207220302368.png ”类型转换“)
  2. CONVERT[convert](expr,type):把当前数值转换成指定类型的值,但并不会改变值列的数据类型。expr是要转换的值,type是转换后的数据类型。

    MySQL--常用函数总结

说明
type数据类型,为以下八种之一:BINARY(二进制)、CHAR(字符型)、DATE(日期)、TIME(时间)、DATETIME(日期时间型)、DECIMAL(浮点数)、SIGNED(整数)和UNSIGNED(无符号整数)


加密函数

  1. AES_ENCRYPT\AES_DECRYPT[aes_encrypt\aes_decrypt](str,key):前者返回的是**key对字符串str利用高级加密标准(AES)算法加密后的结果,结果是一个二进制的字符串,以BLOB类型存储;后者返回的是对前者加密后的数据进行解密后的结果,若检测到无效数据或不正确的填充,则返回NULL。两者可以被看作MySQL中普遍使用的最安全的加密函数。

    MySQL--常用函数总结
  2. ENCODE\DECODE[encode\decode](str,key):前者用来对一个字符串str进行加密,返回的结果是一个二进制字符串,以BLOB类型存储;后者使用正确的**对前者加密后的值进行解密。对比上面的两个加密函数,这两个加密程度相对较弱。

    MySQL--常用函数总结
  3. PASSWORD[password](str):返回字符串str加密后的密码字符串,适合于插入到MySQL的安全系统。该加密过程不可逆,和UNIX密码加密过程使用不同的算法。主要用于MySQL的认证系统。

    MySQL--常用函数总结
  4. MD5[md5](str):计算字符串str的md5校验和。

    MySQL--常用函数总结
  5. SHA[sha](str):计算字符串str的安全散列算法(sha)校验和。

    MySQL--常用函数总结
  6. ENCRYPT[encrypt](str,salt):使用UNIX crypt()系统加密字符串,接收要加密的字符串和用于加密过程的salt(一个可以确定唯一口令的字符串)。在Windows上不可用。

系统信息函数

  1. DATABASE[database]():返回当前数据库名。

    MySQL--常用函数总结
  2. USER\SYSTEM_USER[user\system_user]():返回当前登录用户名。

    MySQL--常用函数总结
  3. VERSION[version]():返回MySQL服务器版本。

    MySQL--常用函数总结
  4. BENCHMARK[benchmark](n,expr):将表达式expr重复运行n次。它可以被用于计算MySQL处理表达式的速度。结果值通常为零。另一种用处来自MySQL客户端内部,能够报告问询执行的次数,根据经过的时间值可以推断服务器的性能。

    MySQL--常用函数总结

说明
本例中得出MySQL计算ENCODE(‘hello’,’goodbye’)加密字符串10000000次需要1.29秒。

  1. CONNECTION_ID[connection_id]():返回当前客户的连接ID。

    MySQL--常用函数总结
  2. FOUND_ROWS[found_rows]():将返回最后一个SELECT查询(没有以LIMIT语句进行限制)返回的记录行数。

    MySQL--常用函数总结
  3. CHARSET[charset](str):返回字符串str的字符集。

    MySQL--常用函数总结

其他系统信息函数扩展

  1. GET_LOCK[get_lock](str,dur):获得一个由字符串str命名的并且由dur秒延时的锁定。
  2. IS_FREE_LOCK[is_free_lock](str):检查以str命名的锁定是否释放。
  3. LAST_INSERT_ID[last_insert_id]():返回由系统自动产生的最后一个AUTOINCREMENT ID的值。
  4. MASTER_POS_WAIT[master_pos_wait](log,pos,dur):锁定主服务器dur秒直到从服务器的日志log指定的位置pos同步。
  5. RELEASE_LOCK[release_lock](str):释放由字符串str命名的锁定。

函数使用建议

  1. MySQL的函数使用会影响查询速度。
  2. 如果在Java后端或MySQL中都可以使用某函数解决问题,建议在Java后端进行处理。
  3. 在MySQL中查询时使用函数,最大的坏处会使得索引无法使用。如在where条件中,对某列使用函数,则该列索引便不会再发挥作用。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-18
  • 2020-05-14
  • 2021-08-03
  • 2020-06-06
猜你喜欢
  • 2021-10-18
  • 2021-09-02
  • 2021-08-16
  • 2021-06-11
  • 2022-12-23
  • 2021-11-04
相关资源
相似解决方案