四、MySQL函数 一、数学函数 二、字符串函数 三、日期函数 四、条件判断函数 五、系统信息 六、其他函数

  1. 绝对值函数ABS(X)

  2. 返回圆周率的函数PI();

  3. 平方根SQRT(X)

  4. 求余MOD(X,Y);

  5. 获取整数的函数

    1. CEIL(X)返回不小于X的最小整数值

    2. CEILING(X)返回不小于X的最小整数值

    3. FLOOR(X)返回不小大X的最小整数值

  6. 获取随机数的函数

    1. RAND()

    2. RAND(X)返回一个随机浮点数值v,范围在0到1,不带参数的RAND()每次产生的随机数值不同,当参数x相同时,将产 生相同的随机数,不同参数产生不同随机数

  7. ROUND(x)返回最接近参数x的整数

  8. ROUND(X,Y)返回最接近参数x的整数,其值保留到小数点后面y位

  9. TRUNCATE(X,Y) 返回舍去至小数点后y位的数字x

  10. 符号函数SIGN(x):返回参数的符号,x的值为负、零或正时返回结果一次为-1、0或1.

  11. 幂运算

    • POW(X,y)、POWER(X,y)返回x的y次方的结果值

    • EXP(X)返回e的x乘方后的值

  12. 数运算 LOG(X)LOG10(X)

二、字符串函数

  1. CHAR_LENGTH(str): 返回字符串中的字符个数

  2. LENGTH(str):返回字符串的字节长度。

  3. CONCAT(s1,s2....)连接参数产生新字符串

  4. CONCAT_WS (X,s1,s2):拼接 X为分隔符

  5. INSERT(s1,x,len,s2):替换字符串,返回s1

  6. 返回指定长度的字符串

    • LEFT(s,n):返回字符串s开始的最左边n个字符

    • RIGHT(s,n)

  7. 填充字符串

    • LPAD(s1,len,s2)

    • RPAD(s1,len,s2)

    • 在s1左/右拼接s2

  8. 删除空格LTRIM(s)RTRIM(s)TRIM(s)

  9. 删除指定字符串的函数TRIM(s1 FROM s):删除s中两端所有的字符串s1,

  10. 重复生成字符:REPEAT(s,n)

  11. 空格函数SPACE(n):返回一个有n个空格组成的字符串

  12. 替换函数REPLACE(s,s1,s2)使用字符串s2代替字符串s中所有的字符串s1.

  13. 比较字符串大小的函数STRCMP(s1,s2):如所有的字符串均相同,则返回0,如根据当前分类次序,第一个参数小于第二个,则返回-1,其他返回1.

  14. 获取字符串函数SUBSTRING(s,n,len)、MID(s,n,len):两个作用相同,从字符创的s的n位置开始截取长度为len的字符。

  15. 匹配子串开始的函数:LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str,str1):3个函数作用相同。返回字符串str1在字符串str中的开始位置。

  16. 字符串逆序的函数REVERSE(s):将字符串反转。

  17. 返回指定位置的字符串的函数:ELT(N,值1,值2,值3.....);N为数字类型几返回该位置的值。

  18. 返回指定字符串的位置的函数:FIELD(s,s1,s2,s3......);返回字符串s在列表s1,s2...中第一次出现位置。

  19. 返回子串位置的函数FILD_IN_SET(s1,s2):返回字符串s1在字符串列表s2中出现的位置,字符串列表是一个由多个逗号分开的字符串组成的列表;

  20. 选取字符串的函数MAKE_SET(X,s1,s2,....):返回由X的二进制数指定的相应位置的字符串组成的字符串。

三、日期函数

  1. 获取当前日期/当前时间
    CURDATE()/CURRENT_DATE()作用相同,返回当前日期 YYYYMMDD
    CURTIME()/CURRENT_TIME()作用相同,返回当前时间
    HHMMSS CURRENT_TIME()/CURRENT_DATE()+0将日期/时间转成数值型
    CURRENT_TIMESTAMP()/LOCALTIME()/NOW()/SYSDATE();

  2. 获取月份的函数
    MONTH(date)返回date对应的月份

  3. 获取星期的函数
    DAYNAME(d)返回d对应的工作日的英文名称
    DAYOFWEEK(d)返回d对应的一周中的索引
    WEEKDAY(d)返回d对应的工作日的索引
    WEEK(d):计算日期d是一年中的第几周
    WEEKOFYEAR(d):计算某天是一年中的第几周

  4. 获取天数的函数
    DAYOFWEEK(d)返回d是一年中的第几天
    DAYOFMONTH(d)返回是一个月中的第几天

  5. 获取年份、季度、小时、分钟和秒钟的函数
    YEAR(date) 返回date对应的年份
    QUARTER(date) 返回date对应一年中的季度值。
    MINUTE(time) 返回time对应的分钟数。
    SECOND(time) 返回time对应的秒数

  6. 获取日起指定值的函数
    EXTRACT(type FORM date): type取值 YEAR YEAR_MONTH
    时间和秒钟转换函数
      TIME_TOS_SEC(time): 转成秒
      SEC_TO_TIME(seconds):转成HH:MM:SS

  7. 计算日期和时间的函数
    DATE_ADD

  8. 将日期和时间格式转化的函数
    DATE_FORMAT(date,format)
    TIME_FORMAT(time,format)
    GET_FORMAT(val_type,format_type);

四、条件判断函数

  1. IF(expr,v1,v2):如果表达式expr是TRUE则返回v1,否则返回v2

  2. IFNULL(v1,v2):假如v1不为null,则返回v1,否则返回v2。

  3. CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END:如果表达式expr值等某个vn则返回对应位置THEN后面的结果。

五、系统信息

  1. VERSION()返回指定MySQL服务器版本的字符串。

  2. CONNECTION_ID():返回MySQL服务器当前连接的次数。每个连接都有唯一的ID

  3. SHOW PROCESSLIST();/SHOW FULL PROCESSLIST: 显示有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态,帮助识别出那些有问题的查询语句等。DATABASE()和SCHEMA()函数返回使用utf8字符集的默认(当前)数据库名称。

  4. 获取用户名函数:USER(),CURRENT_USER()、SYSTEM_USER()、SESSION_USER()

  5. 获取字符串的字符集合排序方式:CHARSET(str) 返回字符串 str自变量的字符集;

  6. COLLATION(str)返回字符串str的字符排列方式

  7. 获取最后一个自动生成的ID值的函数 LAST_INSERT_ID()

六、其他函数

  1. 不同进制转化函数:CONV(N,from_base,to_base)

  2. IP地址和数字相互转换的函数:INET_ATON(expr)

  3. 加锁函数和解锁函数:

    • GET_LOCk(str,timeout)设法使用字符串str给定的名字得到一个锁,持续时间timeout秒。

    • RELEASE_LOCK(str)解开被GET_LOCK()获取的,用字符串str所命名的锁,

    • IS_FREE_LOCK(str)检查锁是否可用

    • IS_USED_LOCK(str) 检查锁是否正在使用

  4. 重复执行指定操作的函数 BENCHMARK(count,expr)重复count次执行表达式expr

  5. 改变字符集的函数 CONVERT(str USING 字符集)

  6. 改变数据类型的函数 CAST(x,AS type) CONVERT(X,type)