函数表示对输入参数值返回一个具有特定关系的值,MySQL提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常用到个种函数。通过对数据的处理,数据库功能变得更加强大,更加灵活得满足不同用户的需求。

数学函数

    1.绝对值函数ABS(X)、
    2.返回圆周率函数PI()默认为小数点后六位、
    3.平方根函数SQRT(X)、
    4.求余函数MOD(X,Y)、
    5.向上取整函数CEIL(x)和CEILING(x)、
    6.向下取整函数FLOOR(X)、
    7.获取随机数函数RAND()和RAND(X),RAND(X)返回一个随机浮点值,范围在0到1之间。若已指定参数X,则它被用作种子值,用来产生重复序列、
    8.ROUND(X)返回最接近X的整数、
    9.ROUND(X,Y)返回最接近X的值,其值保留到小数点后y位,若y为负值,则将保留x值到小数点左边y位、
   10.TURNCATE(x,y)返回被舍去至小数点后y位的数字x、符号函数SIGN(x),x的值为负、零、或正时返回结果依次为-1、0或1
    11.幂运算函数POW(x,y)、POWER(x,y)和EXP(x)(以自然数e为底)
    12.对数运算函数LOG(x)(以自然数e为底)和LOG10(x)(以10为底)
    13.RADIANS(x)将参数x由角度转换为弧度
    14.DEGREES(x)将参数x由弧度转换为角度
    15.正弦函数SIN(x)和反正弦函数ASIN(x)
    16.余弦函数COS(x)和反余弦函数ACOS(x)
    17.正切函数TAN(x)和反正切函数ATAN(x)
    

字符串函数   

    1.CHAR_LENGTH(str)返回字符串所包含的字符个数。
    2.LENGTH(str)返回字符串的字节长度
    3.CONCAT(s1,s2,...)返回结果为连接参数产生的字符串。如果参数中有NULL,则结果为NULL
    4.CONCAT_WS(x,s1,s2,...),用x将其他字符串连接起来。如果x为NULL,则结果为NULL。函数会忽略任何x参数后的NULL值。
    5.INSERT(s1,x,len,s2)替换字符串函数,将s1字符串起始于x位置的len个字符用s2替换。如果x超出s1的长度,则返回原始字符串。若任何一个参数为NULL,返回值为NULL.
    6.LOWER(str)或者LCASE(str)可以将字符串str的字母字符全部转换成小写字母。
    7.UPPER(str)或者UCASE(str)可以将字符串str的字母字符全部转换成大写字母。
    8.LEFT(s,n)返回字符串s左边长度为n的子字符串
    9.RIGHT(s,n)返回字符串s右边长度为n的子字符串
    10.LTRIM(s)返回字符串s,它的左侧空格被删除
    11.RTRIM(s)返回字符串s,它的左侧空格被删除
    12.TRIM(s)返回字符串s,它的左右两侧空格被删除
    13.REPEAT(s,n)返回一个由s重复n次组成的字符串,若n<=0,则返回一个空字符串,若s或n为NULL,则返回NULL。
    14.REVERSE(s)将字符串s反转
    

日期和时间函数

日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数外,也可使用DATETIME或者TIMESTAMP类型的参数,但会忽略这些值得时间部分。相同的,以TIME类型值为参数的函数,可以接受TIMESTAMP类型的参数,但会忽略日期部分。
    1.获取当前日期的函数CURDATE()或CURRENT_DATE(),将当前日期按照'YYYY-MM-DD'或YYYYMMDD格式返回,具体格式取决函数在字符串或数字语境而定。
    2.获取当前时间的函数CURDATE()或CURRENT_DATE(),将当前时间按照'HH:MM:SS' 或HHMMSS格式返回,具体格式取决函数在字符串或数字语境而定。
   3.获取当前日期和时间的函数CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE(),格式为'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式返回,具体格式取决函数在字符串或数字语境而定。
    4.UNIX_TIMESTAMP(data)若无参数调用,则返回一个Unix时间戳('1970-01-01 00:00:00'GMT之后的秒数)作为无符号整数。若用data来调用UNIX_TIMESTAMP,将会返回GMT到date的秒数。
    5.FROM_UNIXTIME(date)函数把UNIX时间戳转换为普通格式时间,与UNIX_TIMESTAMP函数互为反函数。
    6.MONTH(data)返回指定日期的月份(1~12),MONTHNAME(date)返回指定日期中月份的英文全名。
    7.DAYNAME(date)获取指定日期的工作日名称(星期几)
    8. DAYOFWEEK(date)返回指定日期对应的周的索引(1代表周日,2代表周一)
    9.WEEKDAY(date)返回指定日期对应的工作日的索引(0代表周一)
    10.WEEK(date)计算指定日期是一年的第几周
    11.DAYOFYEAR(date)函数返回指定日期是一年的第几天
    12. DAYOFMINTH(date)函数返回指定日期是一个月的第几天
    13. YEAR(date)获取data对应的年份,范围是1970~2069
    14. QUARTER(date)返回date对应的一年中的季度值,范围为1~4
    15. MINTUE(time)返回time对应的分钟数,范围为0~59
    16. SECOND(time)返回time对应的秒数,范围为0~59

条件判断函数

    1.IF(expr,v1,v2),如果表达式expr是TRUE(expr<>0 and expe<>NULL),则IF()返回值为v1,否则为v2.返回值可以为数值或字符串。
    2.IFNULL(v1,v2)函数,假如v1不为NULL,则返回v1,否则返回v2.返回值可以为数值或字符串。
    3.CASE函数 CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END ,如果expr的值等于某个vn,就返回对应位置THEN后面的结果。如果都不相等,则返回else后 面的rn.

系统信息函数

    1.VERSION()返回MySQL服务器版本的字符串
    2.CONNECTION_ID()返回MYSQL服务器当前的连接ID,每次连接都有各自唯一的ID
    3.USER()、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()返回当前被MySQL服务器验证的用户名和主机名的组合。(root@localhost)
    4.CHARSET(str)返回字符串str的字符集
    

加/解密函数

    加密
    1.PASSWORD(str)从明文密码str加密密码,是单向的,返回加密后的字符串
    2.MD5(str)为字符串算出一个MD5 128比特校验和。该值以32位十六进制数字的二进制字符串形式返回,若参数为NULL,则返回NULL。
    3.ENCODE(str,pswd_str)使用pswd_str作为密码,加密str.结果是一个和str长度相同的二进制字符串。
    解密
    1.DECODE(crypt_str,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str,返回明文