一、数学函数: (1)绝对函数:ABS(x) ABS(x)用于返回x的绝对值;
(2)返回圆周率的函数:PI() PI() 返回圆周率
(3)平方根函数:SQRT(x) SQRT(x)返回非负数x的二次方根;
(4)求余函数:MOD(x,y) 返回x被y除后的余数,MOD(x,y)对于带有小数部分的值也起作用,它返回除法运算后的精确运算。
(5)获取整数的函数:CEIL(X)、CEILING(X)、FLOOR(X) CEIL(X)和CEILING(X)用来返回不小于x的最小整数;FLOOR(x)返回不大于x的最大整数;
(6)获取随机数的函数:RAND(),RAND(X) RAND()用于返回一个在0和1之间随机浮点数; RAND(x)用来返回相同的0~1之间的浮点数
(7)四舍五入的函数:ROUND(X),ROUND(X,Y); ROUND(X)用于对x进行四舍五入,不保留小数位;ROUND(x,y)用于对x进行四舍五入,但是保留y位小数; (8)截取数值的函数,TRUNCATE(X,Y) 用于对x进行截取,保留y位小数(它不进行四舍五入);
(9)获取数值的符号的函数:SIGN(x) 当x位负数时,返回-1,当x为正数,返回1,当x为0,返回0;
(10)幂运算函数:POW(x,y)、POWER(x,y)、EXP(x) POW(x,y),POWER(X,Y)用于返回x的y次方结果; EXP(X)用于返回自然对数的底e的x次方的结果;(e= 2.718281828459。。。)
(11)对数函数:LOG(x)、LOG10(X)
(12)角度与弧度相互转换的函数:RADIANS(X)、DEGREES(X) RADIANS(X)用于将参数x由角度转换为弧度,DEGREES(X)用于将参数x的弧度转换为角度
(13)正弦函数和反正弦函数:SIN(X),ASIN(X) SIN(X)用于返回x的正弦值,其中x为弧度值;ASIN(x)用于返回x的反正弦,即正弦为x的值; (14)余弦函数和反余弦:COS(X)、ACON(X) (15) 正切函数和反正切、余切:TAN(X)、ATAN(X)、COT(X);
二、字符串函数: (1)计算字符串长度的函数:CHAR_LENGTH(str)、LENGTH(str) CHAR_LENGTH(str)用于统计str的字符个数(不区分中英文,中文按一个字符算); LENGTH(str)用于统计str的字节长度,使用utf-8编码字符集时,一个汉字是3个字节,一个数字或者英文字母占1字节;
(2)合并字符串的函数:CONCAT(s1,s2.。。。)、CONCAT_WS(x,s1,s2.。。。) CONCAT(s1,s2.。。。)用于将括号里的字符串合并成一个 CONCAT_WS(x,s1,s2.。。。)以x作为连接符号,将里面s1、s2等字符串连接起来;
(3)替换字符串的函数:INSERT(s1,x,len,s2) (1)INSERT(s1,x,len,s2)用于返回字符串s1从x位置被字符串s2替换len个字符 (2)如果x超过字符串s1的长度,则返回s1; (3)如果任何一个参数为NULL,则返回值为NULL;
(4)转换大小写函数: LOWER(STR)、LCASE(str)将str里面的大写转化为小写字母; UPPER(str),UCASE(str)将str里面的小写字母转换成大写;
(5)获取指定长度的字符串的函数:LEFT(s,n)、RIGHT(s,n) LEFT(s,n)用于返回字符串s的最左边的n个字符 RIGHT(s,n)用于返回字符串s的最右边的n个字符
(6)填充字符串的函数;LPAD(s1,len,s2)、RPAD(s1,len,s2) LPAD(s1,len,s2)用于返回s1字符串的左边用s2填充到len字符长度 RPAD(s1,len,s2)用于返回s1字符串的最右边用s2填充到len字符长度
(7)删除空格的函数 :LTRIM(s) 、 RTRIM(s)、TRIM(s) LTRIM(s)用于删除字符串s左侧的空格,RTRIM(s)删除s右侧的空格,TRIM(s)删除s两侧的空格
(8)删除指定字符的函数:TRIM(s1 FROM s) TRIM(s1 FROM s)用于删除字符串s中两端所有的字符换s1,如果没有指定s1,则默认删除字符串s两侧的空格;
(9)重复生成字符串的函数,REPEAT(s,n) 用于重复生成字符串s n次
(10)空格函数 : SPACE(n) 用于返回n个空格
(11)替换函数:REPLACE(s,s1,s2) 表示使用字符串s2替换字符串s中的s1
(12)比较字符串大小的函数 STRCMP(s1,s2) 用于比较s1和s2的大小,若所有字符串相同则返回0,若s1小于s2则返回-1,若s1大于s2返回1; a–z z最大 a最小
(13)获取字符串的函数,SUBSTRING(s,n,len)、MID(s,n,len) SUBSTRING(s,n,len)和MID(s,n,len)用于获取指定位置的字符串
(14)匹配字符串开始位置的函数,LOCATE(str1,str)、POSITION(str1 in str)、INSTR(str,str1); LOCATE(str1,str)用于返回字符串str1在字符串str中的开始位置
POSITION(str1 in str)用于返回字符串str1在字符串str中的开始位置
INSTR(str,str1);用于返回字符串str1在字符串str中的开始位置
(15)反转字符串的函数:REVERSE(s) 用于将字符串S字符顺序反转:
(16)返回指定位置的字符串的函数:ELT(n,s1,s2,s3,。。。) 用于返回第n个字符串,如果n超出范围则返回NULL,
(17)返回指定字符串位置的函数: FIELD(s,s1,s2,s3.。。。) 用于返回字符串s在列表s1,s2,s3.。。中的位置,如果不存在字符串s,则返回0,如果字符串s是NULL,也返回0;
(18)返回字符串位置的函数,FIND_IN_SET(s1,s2) 用于返回字符串s1在字符串s2中的位置(s2代表一个列表)。
三、日期和时间函数 1.获取当前日期的函数:CURDATE() 、 CURRENT_DATE() 2.获取当前时间的函数:CURTIME()、CURRENT_TIME() 3.获取当前的日期和时间的函数: CURRENT_TIMESTAMP()、LOCALTIME()、NOW()、SYSDATE() 4.获取时间戳的函数:UNIX_TIMESTAMP()
5.转换时间戳的函数:FROM_UNIXTIME()
6.获取UTC日期的函数: UTC_DATE() 7.获取UTC时间的函数:UTC_TIME() 8.获取月份的函数:MONTH(date)、MONTHNAME(date) MONTH(date)返回date对应的月份(用数字表示) MONTHNAME(date)返回date对应的月份(用英文表示)
9.获取星期的函数;DAYNAME(date)、DAYOFWEEK(date)、WEEKDAY(date)、WEEK(date)、WEEKOFYEAR(date) (1)DAYNAME(date)返回date对应的工作日英文名称; (2)DAYOFWEEK(date)返回date对应的一周中的索引;1表示周日 ,7表示周六; (3)WEEKDAY(date)返回date对应的工作日索引;0表示周一 1表示周二 6表示周日; (4)WEEK(date)用于计算date是一年中的第几周,一年有53周;(0~52) (5)WEEKOFYEAR(date)用于计算date是一年中的第几周,一年有53周;(1~53)
10.获取天数的函数:DAYOFYEAR(date)、DAYOFMONTH(date) DAYOFYEAR(date)返回date是一年中的第几天;一年有365天 DAYOFMONTH(date)返回date是一个月中的第几天;
11.获取年份的函数:YEAR(date)
12.获取季度的函数:QUARTER(date)
13.获取分钟的函数:MINUTE(time)
14.获取秒钟的函数:SECOND(time) 15.获取小时的函数:HOUR(time) 16.获取日期的指定值的函数:EXTRACT(type FROM date)
17.时间和秒钟的转换函数:TIME_TO_SEC(time)、SEC_TO_TIME(time)
18.计算日期和时间的函数: DATE_ADD()、ADDDATE()、DATE_SUB()、SUBDATE()、DATEDIFF() (1)DATE_ADD()用于对日期进行加运算,格式:DATE_ADD(date,INTERVAL expr type)
(2)ADDDATE()同上; (3)DATE_SUB():用于对日期进行减运算,格式:DATE_SUB(date,INTERVAL expr type) (4)SUBDATE():同上; (5)DATEDIFF():用来计算两个日期间隔的天数
19.将日期和时间格式化的函数: DATE_FORMAT(date,format):将日期按照规定格式打印
TIME_FORMAT(date,format) :将时间按照规定格式打印
GET_FORMAT():这个函数是套在上面两个函数里面来用的,用来显示指定格式的日期和时间
% 说明:
四、条件判断函数: (1)IF() IF(expr ,v1,v2)如果表达式为true,则返回v1,否则返回v2;
(2)IFNULL IFNULL(v1,v1)如果v1不为NULL,则返回v1,如果v1为NULL,则返回v2
(3)CASE 语法:CASE expr WHEN v1 THEN r1 [WHEN v2 THEN r2] [ELSE rn] END; 含义:如果expr等于vn,怎返回对应位置THEN后面的结果,如果所有的值都不相等,则返回ELSE后面的值rn
五、系统信息函数: (1)获取MySQL版本号的函数:VERSION(); (2)查看当前用户的连接线程的ID函数 :CONNECTION_ID() # 查看当前用户的连续信息:SHOW PROCESSLIST (3)查看当前使用的数据库的函数:DATABASE()、SCHEMA() (4)查看当前登录的用户名的函数:USER()、CURRENT_USER()、SYSTEM_USER(); (5)查看指定字符串的字符集的函数:CHARSET(str) (6)查看指定字符串的排列方式的函数:COLLATION(str) (7)获取最有一个自动生成的ID值得函数:LAST_INSERT_ID()
六、加/解密函数; (1)加密函数:PASSWORD(str),MD5(str),ENCODE(str,pswd_str) PASSWORD(str)从明文密码str计算并返回加密后的密码字符串,当str为NULL,返回NULL MD5(str)为字符串str算出一个MD5 128比特校验和 ENCODE(str,pswd_str)使用pswd_str作为密码加密str; (2)解密函数:DECODE(crypt_str,pswd_str)使用pswd_str作为密码,解密加密码字符串crpt_str
七、其他函数: (1)格式化函数:FORMAT(x,n) 将数字x格式化,并以四舍五入的方式保留小数点后n为小数,结果以字符串形式返回;
(2)不同进制的数字进行转换的函数:CONV() CONV()用于不同进制间数字或字符转换
(3)IP地址与数字相互转换的函数:INET_ATON(expr)、INET_NTOA(expr)
(4)加锁函数和解锁函数:GET_LOCK(str,timeout)、RELEASE_LOCK(str) GET_LOCK(str,timeout)使用字符串str来得到一个锁,持续时间timeout秒 1.若成功得到锁,则返回1 2.若操作超时,则返回0 3.若发生错误,则返回NULL RELEASE_LOCK(str)用于解开被GET_LOCK()加的锁; 1.若锁被解开,则返回1 2.若该线程尚未创建锁,则返回0 3.若命名的锁不存在,则返回NULL 4.若锁从未被GET_LOCK()调用获取,或锁已经被解开,则该锁不存在,返回NULL (5)重复执行指定操作的函数 :BENCHMARK(count,expr) 重复执行count次expr 1.可以用于计算MySQL处理表达式的速度 2.可以在mysql客户端内部报告语句执行时间 (6)改变字符集的函数:CONVERT(str USING 字符集);
(7)改变数据类型的函数:CAST(x,AS type)、CONVERT(x,type) 用于将一个数据类型的值转换为另一个数据类型的值;