MySql函数大全

数学函数

绝对值函数ABS(x)和返回圆周率的函数PI()

ABS(x)返回x的绝对值
求2,-3.3,和-33的绝对值
PI()返回圆周率π的值,默认的显示小数位数是6位

MySql函数大全_第1张图片
MySql函数大全_第2张图片

平方根函数SQRT(x)和求余函数MOD(x,y)

SQRT(x)返回非负数x的二次方根
求9,40,-49的二次方根
负数没有平方根,故-49的返回值是null

MOD(x,y)返回x被y除后的余数,也就是x除以y所得余数,mod()对于带有小数
部分的数值也起作用,他返回除法运算后的精确余数
对MOD(31,8),
MOD(234,10),MOD(45.5,6)进行求余运算

MySql函数大全_第3张图片
MySql函数大全_第4张图片

获取整数的函数CEIL(x),CEILING(x),FLOOR(x)

CEIL(x)和CEILING(x)意义相同,前者是后者的缩写,返回不小于x的最小整数值,
并不是四舍五入,返回值转化为一个BIGINT类型
-3.4为负数,不小于-3.4的最小整数为-3,3.1为正数,不小于3.1的最小整数为4

FLOOR(x)返回不大于x的最大整数
-3.4为负数,不大于-3.4的最大整数为-4,3.1为正数,不大于3.1的最大整数为3

MySql函数大全_第5张图片
MySql函数大全_第6张图片

获取随机数的函数RAND()和RAND(x)

RAND(x)返回一个随机浮点值v,范围在0到1之间(即0<=v<=1.0)
若指定一个整数参数x,则它被用作种子值,用来产生重复序列
通过RAND()+10,可以获取10到11之间的随机数,
不带参数x的RAND()产生的参数是不相同的,带参数的将会参数相同的随机数

MySql函数大全_第7张图片
MySql函数大全_第8张图片

函数ROUND(x),round(x,y),TRUNCATE(x,y)

round(x)返回最接近于参数x的整数,对x值进行四舍五入
四舍五入之后,只保留各个值的整数部分
round(x,y),返回最接近参数x的数,其值保留到小数点后的y位,
若y的值为负值,则保留到左边的y位,保留的小数点左边的相应位数
直接保存为0,不进行四舍五入

MySql函数大全_第9张图片
MySql函数大全_第10张图片

truncate(x,y)返回被舍去至小数点后y位的数字x,若y的值为0,
则结果不带小数点或者小数部分。若y的值为负数,则截去(归零)x小数
点左起第y位开始后面所有地位的值
rounf(x,y)在截取时会进行四舍五入,而truncate(x,y)直接进行截取,不会四舍五入

MySql函数大全_第11张图片

符号函数SIGN(x)

sign(x)返回参数的符号,x的值为负或正数时,返回结果分别是-1,0,1

MySql函数大全_第12张图片

幂运算函数POW(x,y),power(x,y),EXP(x)

pow(x,y)或者power(x,y)返回x的y次乘方的结果值
exp(x)返回e的x乘方

MySql函数大全_第13张图片
MySql函数大全_第14张图片

对数运算函数

LOG(x)返回x的自然对数,x相对于基数e的对数
对数定义域不能为负数,因此log(-3)返回结果为null
log10(x)返回x的基数为10的对数

MySql函数大全_第15张图片
MySql函数大全_第16张图片

角度与弧度相互转换的函数radians(x)和defrees(x)

使用radians将角度转换为弧度,
degrees(x)将参数x由弧度转换为角度

MySql函数大全_第17张图片

正弦函数sin(x)和反正弦函数asin(x)

sin(x)返回x的正弦,其中x为弧度值
asin(x)返回x的反正弦值,值必须在-1到1之间,否则会返回null

MySql函数大全_第18张图片
MySql函数大全_第19张图片

余弦函数cos(x)和反余弦函数ACOS(x)

cos(x)返回x的余弦,x为弧度值,cos与acos互为反函数

MySql函数大全_第20张图片
MySql函数大全_第21张图片

正切函数、反正切函数、余切函数

TAN(x)返回x的正切,其中x为给定的弧度值,
ATAN(x)返回x的反正切,即正切为x事务值
COT(x)返回x的余切,与tan互为倒数

MySql函数大全_第22张图片
MySql函数大全_第23张图片
MySql函数大全_第24张图片

字符串函数

计算字符串字符数的长度和字符串长度的函数

CHAR_LENGTH(str)返回值为字符串str所包含的字符个数,一个多字节字符算作一个单字符
LENGTH(str)返回值为字符串的字节长度,使用utf8(unicode的一种变
长字符编码,又称万国码)编码字符集时,一个汉字是两个字节,
一个数字或者字母算一个字节

MySql函数大全_第25张图片
MySql函数大全_第26张图片

合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)

CONCAT(s1,s2,...)返回结果为连接参数产生的字符串,可能有一个或者多个参数,
如果有一个参数值为null,返回值为null。
如果所有参数为非二进制字符串,则返回结果为非二进制字符串,如果参数中含
有一个二进制字符串,则返回结果为二进制字符串

MySql函数大全_第27张图片

concat_ws(x,s1,s2,...),CONCAT_WS代表concat with separator,是concat()的特殊形式,
第一个参数x是其它参数的分隔符,分隔符的位置放在要连接的两个字符串之间。
分隔符可以是一个字符串,也可以是其它参数,如果分割符是null,则结果是null,
函数会忽略任何分割符参数后的null值,即如果出现null,则忽略此null,继续拼接其它的。

MySql函数大全_第28张图片

替换字符串的函数INSERT(s1,x,len,s2)

Insert(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被s2取代的
len字符,如果x超过字符串的长度,则返回原始字符串,假如len的长度大于
其它字符串的长度,则从位置x处开始替换,若任何一个参数为null,则返回值为null
起始位置小于1,大于s1的长度,均返回s1原字符串。

MySql函数大全_第29张图片
MySql函数大全_第30张图片

字母大小写转换函数

LOWER(str)或者LCASE(str)可以str字符串中字母字符全部转换成小写字母
UPPER或者UCASE可以将字符串中所有字母转化为大写

MySql函数大全_第31张图片
MySql函数大全_第32张图片

获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

left(s,n)只有两个参数,第一个参数是原字符串,第二个参数是截止位置
left是左边的意思,函数的意思就是1开始,截取n个字符,或者说截取左边n个字符
right是右边的意思,含义同上

MySql函数大全_第33张图片
MySql函数大全_第34张图片

填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

LPAD(s1,len,s2)返回字符串s1,其左边由字符串s2填补到len字符长度
假如s1的长度大于len,则返回值被缩短到len字符
RPAD(s1,len,s2)返回字符串s1,其右边由字符串s2填补到len字符长度
假如s1的长度大于len,则返回值被缩短到len字符

MySql函数大全_第35张图片
MySql函数大全_第36张图片

删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

LTRIM(s) 返回字符串s,字符串s的左侧字符被删除,右边空格不会被删除
RTRIM(s)返回字符串s,字符串s的右侧字符被删除,左边字符不会被删除
TRIM(s)返回字符串s,字符串s的两侧字符被删除,中间字符不会被删除

MySql函数大全_第37张图片

删除指定字符串的函数TRIM(s1 from s)

TRIM(s1 from s) 未指定s1的情况下,删除两端的空格
指定s1的情况下,删除s两端所有的子串s1

MySql函数大全_第38张图片

重复生成字符串的函数REPEAT(s,n)

REPEAT(s,n)返回一个s重复n次的字符串s,如果n小于等于0,则返回
一个空字符串,若s或者n为null,则返回null

MySql函数大全_第39张图片

空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

SPACE(n)返回由n个空格组成的字符串
replace(s,s1,s2)使用字符串s2替换s中的所有字符串s1

MySql函数大全_第40张图片
MySql函数大全_第41张图片

比较字符串大小的函数STRCMP(s1,s2)

strcmp(s1,s2)  若所有的字符串相同,则返回0,若第一个参数小于第二个,则返回-1,
其余情况返回1

MySql函数大全_第42张图片

获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)

substring(s,n,len)带有len参数的格式,从字符串s返回一个长度同len
字符相同的子字符串,起始于位置n。
如果n是负值,则子字符串的位置起始于字符串结尾的n字符,即倒数第n
个字符,而不是字符串的开头位置
substring函数与mid函数作用相同
如果对len使用一个小于1的值,则结果始终是空字符串

MySql函数大全_第43张图片
MySql函数大全_第44张图片

匹配字符串开始位置的函数

locate(str1,str),position(str1 in str),insert(str,str1)三个函数的作用相同,返回子
字符串str1在str中的开始位置

MySql函数大全_第45张图片

字符串的逆序函数

REVERSE(s)将字符串s反转,返回的字符串顺序和s的字符串顺序相反

MySql函数大全_第46张图片

返回指定位置的字符串的函数

ELT(N,字符串1,字符串2,字符串3,...,字符串N),若n等于1,
则返回值为字符串1,若n=2,则返回值为字符串2,,以此类推。
若N小于1或者大于参数的数目,则返回Null

MySql函数大全_第47张图片

返回指定字符串位置的函数FIELD(s,s1,s2,…)

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

MySql函数大全_第48张图片

返回子串位置的函数FIND_IN_SET(s1,s2)

FIND_IN_SET(s1,s2)返回字符串s1在字符串列表s2中出现的位置
字符串列表是一个由多个','分割的字符串组成的列表,如果s1不在s2中
或者s2为空字符串,则返回值为0,如果任意一个字符串为null,则返回值是null

MySql函数大全_第49张图片

选取字符串的函数make_set(x,s1,s2,…)

make_set(x,s1,s2,...)返回由x的二进制数指定的相应的相应位的字符串组成的字符串,s1对应比特1,
s2对应比特01,以此类推,s1,s2...中的null值不会被添加到结果中

MySql函数大全_第50张图片

1的二进制位0001,4的二进制值为0100,1与4进行或操作后是0101,从右往左第一位
和第三位为1.make_set(1,'a','b','c')返回第一个字符串;
make_set(1|4,'hello','nice','world')返回从左端开始的第1和第3
个字符组成的字符串;null值不会添加到结果中

时间和日期函数

获取当前日期和获取当前时间的函数

 curdate()和current_date()函数作用相同,将当前日期安照'YYYY-MM-DD'或YYYYMMDD格式的值返回,
 具体格式根据函数在字符串或是数字语境中而定。
通过下图结果 可以看到,两个函数的作用相同,都是获取系统当前日期,通过+0,将日期型转换为数值型。

MySql函数大全_第51张图片

CURRENT_TIME(),CURTIME()函数作用相同,将当前时间以HH:MM:SS或HHMMSS的格式返回,
具体格式根据字符串或是数字语境中而定。

MySql函数大全_第52张图片

获取当前日期和时间的函数

CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()4个函数的作用相同,
均返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS,具体格式根据
函数在字符串或数字语境中而定,四个函数返回的结果值是一致的

MySql函数大全_第53张图片
MySql函数大全_第54张图片

UNIX时间戳函数

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

MySql函数大全_第55张图片

FROM_UNIXTIME(date)函数把unix时间戳转换为普通格式的时间,与
UNIX_TIMESTAMP(date)函数互为反函数

MySql函数大全_第56张图片

返回UTC日期的函数和返回UTC时间的函数

UTC_DATE()返回当前UTC(世界标准世界)日期值,其格式为'YYYY-MM-DD'或YYYYMMDD,
具体格式取决于函数是否用在字符串或者数字语境中。UTC_DATE()返回值为当前时区的日期值。
UTC_TIME()返回当前时区的时间值,其格式为'HH:MM:SS'或者HHMMSS,具体格式取决于函数是否
用在字符串或者数字语境中。

MySql函数大全_第57张图片
MySql函数大全_第58张图片

获取月份的函数MONTH(date)和MONTHNAME(date)

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

MySql函数大全_第59张图片

获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

dayname(d)函数返回d对应的工作日的英文名称,例如sunday\monday等
dayofweek(d)函数返回d对应的一周的索引位置,1表示周日,2表示周一,...7表示周六
weekday(d)返回d对应的工作日索引,0表示周一,1表示周二...6表示周日

MySql函数大全_第60张图片

获取星期数的函数WEEK(d)和WEEKOFYEAR(d)

WEEK(d)计算日期d是一年中的第几周
WEEKOFYEAR(d)计算某一天是一年中的第几周,相当于week(d,3)

MySql函数大全_第61张图片
MySql函数大全_第62张图片
MySql函数大全_第63张图片

获取天数的函数DAYOFYEAR(d),DAYOFMONTH(d)

DAYOFYEAR返回一年中的第几天,范围从1到366
DAYOFMONTH返回一个月的第几天,范围从1到31

MySql函数大全_第64张图片

获取年份、季度、小时、分钟和秒钟的函数

YEAR(d)返回d对应的年份,范围从1970-2069
当年份只有两位时,00-69转换为2000-2069,70-99转换为1970-1999

MySql函数大全_第65张图片

quarter(date) 返回date对应一年中的季度值,范围是1-4

MySql函数大全_第66张图片

minute(time)返回time对应的分钟数,范围是0-59

MySql函数大全_第67张图片

second(time)返回time对应的秒数

MySql函数大全_第68张图片

获取日期的指定值的函数EXTRACT(type from date)

MySql函数大全_第69张图片

时间与秒钟转换的函数

time_to_sec(time) 返回已转化为秒的time参数,转换公式为:小时*3600+分钟*60+秒
sec_to_time(seconds)返回被转换为小时、分钟和秒数的seconds参数值,其格式为'HH:MM:SS'或HHMMSS,
具体格式根据该函数是否用在字符串或者数字语境中而定

MySql函数大全_第70张图片

计算日期和时间的函数

计算日期和时间的函数有:DATE_ADD()、ADDDATE(),DATE_SUB()、SUB_DATE(),
ADDTIME()、SUBTIME()和DATE_DIFF()。
DATE_ADD(date,INTERVAL expr type)和DATE_SUB(date,INTERVAL expr type),其中
date是一个DATETIME或者date值,用来指定起始时间。expr是一个表达式,用来指定从起始日期
添加或者减去的时间间隔值,expr是一个字符串,对于负值的时间间隔,它可以以一个'-'开头
type是关键词,它表示了表达式被解释的方式。若date参数是一个DATE值,计算会包括YEAR、MONTH、DAY部分
即(没有时间部分),其结果是一个DATE值,否则将是一个DATETIME值,DATE_ADD和ADDDATE()两个
函数作用相同,执行日期的加运算。

将日期和时间格式化的函数

DATE_FORMAT(date,format)根据format指定的格式格式化date值,

条件判断函数

IF(expr,v1,v2)

如果表达式expr的结果值为true,则返回v1,如果为false,则返回v2。IF()的返回值为数字值或字符串值,
具体情况视其所在语境而定

MySql函数大全_第71张图片

IFNULL(v1,v2)函数

IFNULL(v1,v2)加入v1不为null,则IFNULL()的返回值为V1;否则其返回值为v2。
IFNULL的返回值是数字还是字符串,根据其具体的语境而定。

MySql函数大全_第72张图片

CASE函数

CASE expr  WHEN v1 THEN r1 [WHEN  v2 THEN r2][ELSE rn] END
该函数表示,如果expr的值等于某个vn,则返回对应位置THEN后面的结果。
如果与所有值都不相等,则返回ELSE后面的rn

MySql函数大全_第73张图片

CASE WHEN v1 THEN r1 [WHEN v2 then r2] [else rn] end;
该函数表示,当某个vn为true时,返回对应then后面的结果

MySql函数大全_第74张图片

系统信息函数

MySQL中的系统信息有:数据库的版本号、当前用户名和连接数、系统字符集、最后一个自动生成的ID值等。

获取MySQL版本号、连接数和数据库名的函数

VERSION()返回指示MySQL服务器版本的字符串,这个字符串使用utf8字符集
connection_id()返回MySQL数据库当前连接的次数,每个连接都有自己唯一的ID
show processlist;show full processlist();
processlist命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,
还可以查看当前的连接状态,帮助识别出有问题的查询语句等。
如果是root账号,能看到所有用户的当前连接。如果是其它普通账号,则只能看到自己占用的连接。
未加full,只列出前100条,加full,则列出全部结果。
database()和schema()函数返回使用utf8字符集的默认(当前)数据库名

MySql函数大全_第75张图片
MySql函数大全_第76张图片
MySql函数大全_第77张图片
MySql函数大全_第78张图片

获取用户名的函数

USER()、CURRENT_USER()、SYSTEM_USER()和SESSION_USER()
这几个函数返回当前被MySQL服务器验证的用户名和主机名组合

MySql函数大全_第79张图片

获取字符串的字符集和排序方式的函数

CHARSET(str)返回字符串str自变量的字符集
COLLATION(str)返回字符串str的排列方式,使用不同字符集时,字符串的排列方式不同。

MySql函数大全_第80张图片
MySql函数大全_第81张图片

获取最后一个自动生成的ID值的函数

SELECT LAST_INSERT_ID();

加/解密函数

加密函数MD5(str)

MD5(str)为字符串算出一个MD5 128比特校验和。该值以32位十六进制数字的
二进制字符串形式返回,若参数为null,则返回null。

MySql函数大全_第82张图片

加密函数ENCODE(str,pswd_str)

ENCODE(str,pswd_str)使用pswd_str作为密码,加密str。使用DECODE()
解密结果,是一个和str相同的二进制字符串
select    encode('secret','cry'),length(encode('secret','cry'));

解密函数DECODE(crypt_str,pswd_str)

select  decode(encode('secret','cry'),'cry');
ENCODE与decode互为反函数

其它函数

格式化函数FORMAT(x,n)

FORMAT(x,n)将数字x格式化,并以四舍五入的方式保留小数点后n位,结果以字符串的形式返回。
若n为0,则返回结果不带小数部分。

MySql函数大全_第83张图片

不同进制的数字进行转换的函数

conv(N,from_base,to_base)函数进行不同进制数间的转换。返回值为N的字符串表示,由
from_base进制转换为to_base进制。如有任意一个参数为null,则返回值为null。自变量n被理解为
一个整数,但是可以被指定为一个整数或者字符串。最小基数,而最大基数则是36

MySql函数大全_第84张图片

IP地址与数字相互转换的函数

INET_ATON(expr)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。
地址可以是4或8bit地址
产生的数字按照网络字节顺序,如图所示例子,计算方法为209*256^3+41*256^2+123*256+12

MySql函数大全_第85张图片

INET_NTOA(expr)给定一个数字网络地址(4或8bit),返回作为字符串的该地址的点地址表示。
INET_NTOA和INET_ATON互为反函数

MySql函数大全_第86张图片

改变字符集的函数

CONVERT(...USING...)带有USING的CONVERT()函数被用来在不同的字符集之间转化数据

MySql函数大全_第87张图片

改变数据类型的函数

CAST(x,AS type)和CONVERT(x,type)函数将一个类型的值转换为另一个类型的值
可以转换的type有:BINARY()、CHAR(n)、DATE、TIME、DATETIME、DECIMAL、
SIGNED、UNSIGNED。

MySql函数大全_第88张图片

加锁函数和解锁函数

GET_LOCK(str,timeout)
RELEASE_LOCK(str)
IS_FREE_LOCK(str)
IS_USED_LOCK(str)

你可能感兴趣的:(乐在其中)