您现在的位置是:首页 > 数据库 > MySQLMySQL

MySQL函数

第十三双眼睛2019-06-18【MySQL】人已围观

简介MySQL提供了众多功能强大,方便易用的函数,使用这些函数,可以极大的提高用户对数据库的管理效率,主要包括,数学函数,字符串函数,日期和时间函数,条件判断函数,系统信息函数,加密函数等。

MySQL函数简介
函数表示对输入的参数进行一定规则的运算,返回一个特定的值,MySQL提供了很多的函数,在进行数据库管理以及数据的查询操作时,将会经常用到各种函数,通过对数据的处理,数据库的功能变得很强大,很灵活。MySQL提供的函数从功能上主要分为以下几类,数学函数,字符串函数,日期和时间函数,条件判断函数,系统信息函数,和加密函数。

数学函数
数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数,三角函数,对数函数,随机函数,当有错误产生时,数学函数会返回NULL.

绝对值函数ABS()和圆周率函数PI()
ABS(X)函数返回X的绝对值,正数和0的绝对值是本身,负数的绝对值是其相反数。
PI()返回圆周率,默认显示小数位数是6位

平方根函数SQRT()和求余函数MOD(X,Y)
SQRT(X)返回非负数的二次方根,负数的二次方根显示NULL

获取整数的函数CEIL(X),CEILING(G),FLOOR(X)
CEIL(X)和CEILING(X)一样,返回不小于X的最小整数值,返回值转化为一个BIGINT
FLOOR(X)返回不大于X的最大整数,返回值转化为一个BIGINT

获取随机数的函数RAND()和RAND(X)
RAND()产生一个随机数,范围载0-1之间。如果指定一个整数参数X,则它被用作种子值,用来产生重复序列。
RAND(X),相同的X产生相同的随机数,不同的X产生不同的随机数。

函数ROUND(X),ROUDN(X,Y),TRUNCATE(X,Y)
ROUND(X)返回最接近X的整数,对X的值进行四舍五入。
ROUND(X,Y)返回最接近X的数,其值保留小数点后面Y位,如果Y是负值,则保留到小数点左边Y位

符号函数SIGN(X)
SIGN(X)返回X的符号,当X的值位负,零,正时,依次返回结果位-1,0,1.

幂运算函数POW(X,Y),POWER(X,Y),EXP(X)
POW(X)或者POWER(X,Y)函数返回X的Y次方的结果值。
EXP(X)返回e的X次方的值

对数函数LOG(X)和LOG10(X)
LOG(X)返回X的自然对数,LOG10(X)返回X的基数为10的对数,如果括号中的数为负数,则返回NULL

角度与弧度相互转换函数
RADIANS(X)将角度转换为弧度。
DEGREES(X)将弧度转化为角度

正弦函数和反正弦函数
SIN(X)返回X的正弦值,其中X为弧度值。
ASIN(X)返回X的反正弦,即正弦为X的值,如果X不在-1到1之间,则返回NULL

余弦函数和反余弦函数
COS(X)返回X的余弦值,其中X为弧度值
ACOS(X)返回X的反余弦值,即余弦是X的值,如果X不在-1到1之间,则返回NULL

正切函数和反正切函数,余切函数
TAN(X)返回X的正切值,X为弧度值。
ATAN(X)返回X的反正切值,即正切为X的值
COT(X)返回X的余切值,X为弧度值。

字符串函数
字符串函数主要用来处理数据库中的字符串,主要有计算字符串的长度,字符串合并,字符串替换,字符串比较函数,查找指定字符串位置的函数。

计算字符串字符数的函数和字符串长度的函数
CHAR_LENGTH(STR)返回字符串STR所包含的字符个数
LENGTH(STR)返回字符串的字节长度

合并字符串函数CONCAT(S1,S2,......Sn)和CONCAT_WS(X,S1,S2,......,Sn)
CONCAT(S1,S2)返回结果为两个字符串连接在一起的结果,如果任何一个参数为NULL,则返回NULL,如果所有参数均非二进制字符串,则结果为非二进制字符串,如果参数中有一个二进制字符串,则结果为二进制字符串。
CONCAT_WS(X,S1,S2,......,Sn),则将X当作连接符,将后面的参数进行连接。如果分隔符为NULL,则结果为NULL.如果参数中有NULL值,将被忽略。

替换字符串的函数
INSERT(S1,X,LEN,S2)返回字符串S1,其子字符串起始于X位置和被字符串S2取代的LEN字符,如果X超过S1的长度,则返回原始字符串,假如LEN的字符串长度大于其他字符串的长度,则从X的位置开始替换。若任何一个参数为NULL,则返回NULL.
例如:
INSERT(QUEST,2,4,WHAT),返回QWHAT.
INSERT(QUEST,-1,4,WHAT)返回QUEST,因为-1超出了下标范围
INSERT(QUEST,3,1,WHAT)返回QUWHAT

字母大小写转换函数
LOWER(S)或者LCASE(S)可以将字符串S中的字母全部转换成小写字母。
UPPER(S)或者UCASE(S)可以将字符串S中的字母全部转换成大写字母。

获取指定长度的字符串LEFT(S,N)和RIGHT(S,N)
LEFT(S,N)返回字符串S开始的最左边N个字符
RIGHT(S,N)返回字符串最右边N个字符

填充字符串函数LPAD(S1,LEN,S2)和RPAD(S1,LEN,S2)
LPAD(S1,LEN,S2)返回字符串S1,其左边由字符串S2填补到LEN字符长度,假如S1的长度大于LEN,则返回值被缩短至LEN字符。
如:SELECT LPAD('hello',4,'??')结果是hell
LPAD('hello',10,'??')结果是?????hello
RPAD(S1,LEN,S2)返回字符串S1,右边被S2填充至LEN长度,如果字符串S1的长度大于LEN,则返回值被缩短到LEN字符长度。

删除空格函数LTRIM(S),RTRIM(S),TRIM(S)
LTRIM(S)返回字符串,左边的空格被删除
RTRIM(S)返回字符串,右边的空格被删除
TRIM(S)返回字符串,两边的空格被删除

删除指定字符串的函数TRIM(S1 FROM S)
TRIM(S1 FROM S)删除字符串串S中两端的S1字符串,不会删除中间的,如果S1不指定,则删除空格

重复生成字符串的函数REPEAT(S,N)
REPEAT(S,N)返回一个由重复的字符串S组成的字符串,字符串S的数量等于N,如果N=0,则返回一个空的字符串,如果S或者N为NULL,则返回NULL

空格函数SPACE(N)和替换函数REPLACE(S,S1,S2)
SPACE(N)返回一个由N个空格构成的字符串
REPLACE(S,S1,S2)使用字符串S2替换字符串S中的S1

比较字符串大小的函数STRCMP(S1,S2)
STRCMP(S1,S2),如果两个字符串一样,则返回0,如果第一个小于第二个则返回-1,反之则返回1

获取子串的函数SUBSTRING(S1,N,LEN)和MID(S,N,LEN)
SUBSTRING(S1,N,LEN)返回一个长度同LEN字符相同的子字符串,起始于位置N.如果N是一个负值,则子字符串的位置起始于字符串结尾的N字符,即倒数第N个字符,而不是开头的位置。
MID(S,N,LEN)的作用与SUBSTRING(S,N,LEN)的作用相同
如果LEN的值小于1,则返回的是一个空字符串

匹配字串开始位置的函数
LOCATE(STR1,STR),POSITION(STR1 IN STR)和INSTR(STR,STR1)三个函数的作用一样,返回子字符串STR1在字符串STR中的位置

字符串逆序函数REVERSE(S)
REVERSE(S)将字符串S反转,返回的字符串顺序和S字符串顺序相反。

返回指定位置的字符串函数
ELT(,M,S1,S2,S3,S4......SN),如果M=1,则返回字符串S1,如果M大于或小于字符串的个数,则返回NULL.

返回指定字符串位置的函数FIELD(S,S1,S2)
FIELD(S,S1,S2......SN)返回字符串S在列表S1,S2......SN中第一次出现的位置,在找不到的时候返回0,如果S为NULL,则直接返回NULL.

返回字串位置的函数函数FIND_IN_SET(S1,S2)
FIND_IN_SET(S1,S2)返回字符串S1在字符串列表S2中出现的位置,字符串列表是一个由逗号分隔的字符串组成的列表。如果S1不在S2或者S2为空字符串,则返回0,如果任意一个参数为NULL,则返回值为NULL,这个函数在第一个参数包含一个逗号时无法正常运行。
例如:SELECT FIND_IN_SET('HI','AAA,BBB,HI'),结果是3

选取字符串的函数MAKE_SET(X,S1,S2,......)
MAKE_SET(X,S1,S2......)返回由X的二进制数指定的响应位的字符串组成的字符串,S1对应比特1,S2对应比特01。

日期和时间函数
日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用DATE类型的参数外,也可以使用DATETIME和TIMESTAMP类型的参数,但是会忽略这些值的时间
部分,许多日期函数可以接收字符串和数字类型两种参数。

获取当前日期的函数和获取当前时间的函数
CURDATE()和CURRENT_DATE()的作用相同,将当前日期按照YYYY-MM-DD或者YYYYMMDD的格式返回
CURTIME()和CURRENT_TIME()函数的作用相同,将当前时间以HH:MM:SS或者HHMMSS的格式返回

获取当前日期和时间的函数
CURRENT_TIMESTAMP()和LOCALTIME(),NOW(),SYSDATE()4个函数的作用相同,均返回当前日期和时间值,格式为YYYY-MM-DD HH:MM:SS 或者
YYYYMMDDHHMMSS.

UNIX时间戳函数
UNIX_TIMESTAMP(DATE)若无参数调用,则返回一个UNIX时间戳作为无符号整数,DATE可以是一个DATE字符串,DATETIME字符串,TIMESTAMP字符串或当地时间的一个YYMMDD或YYYYMMDD格式的字符串
FROM_UNIXTIME(DATE)函数把NUIX时间戳转换为普通格式的时间,与UNIX_TIMESTAMP(DATE)互为反函数。


返回UTC日期的函数和返回UTC时间的函数
UTC_DATE()返回当前UTC日期值,其格式为YYYY-MM-DD或者YYYYMMDD,具体格式取决于函数是否用在字符串或数字语境中。
如:SELECT UTC_DATE(),UTC_DATE()+0的结果是2019-06-23,20190623
UTC_TIME()返回当前UTC时间值,其格式为HH:MM:SS或者HHMMSS,具体格式取决于是否用在字符串或者数字语境中。

获取月份的函数MONTH(DATE)和MONTHNAME(DATE)
MONTH(DATE)返回DATE对应的月份,范围从1-12
MONTHNAME(DATE)返回日期对应的英文全名

获取星期的函数DAYNAME(DATE)和DAYFOWEEK(DATE),WEEKDAY(DATE)
DAYNAME(DATE)返回DATE对应的工作日的英文名称,例如,Sunday......
DAYOFWEEK(DATE)返回日期对应的一周中的所以你,1表示周日,。。。。。。
WEEKDAY(DATE)返回DATE对应的工作日索引,0表示周一,1表示周二,。。。。。。

获取星期的函数WEEK(DATE)和WEEKOFYEAR(DATE)
WEEK(DATE)计算DATE是一年中的第几周,WEEK()的双参数形式允许指定该星期是否起始于周一或者周日。
WEEKOFYEAR(DATE)计算DATE是一年中的第几周,范围是从1-53,相当于WEEK(D,3)

获取天数的函数DAYOFYEAR(DATE)和DAYOFMONTH(DATE)
DAYOFYEAR(DATE)返回的是一年中的第几天,范围从1-366
DAYOFMONTH(DATE)返回的是一个月中的第几天,范围是1-31

获取年份,季度,小时,分钟,秒钟的函数
YEAR(DATE)返回DATE对应的年份,
QUARTER(DATE)返回DATE对应的季度,范围从1到4
MINUTE(TIME)返回TIME对应的分钟,
SECOND(TIME)返回TIME对应的秒钟

获取日期的指定值的函数EXTRACT(TYPE FROM DATE)
EXTRACT(TYPE OF DATE)函数所使用的时间间隔类型说明符同DATE_ADD()或DATE_SUB()的相同,但从日期中提取一部分,而不是执行运算。
例如:SELECT EXTRACT(YEAR FROM '2016-07-12')返回2016

时间和秒钟转换的函数
TIME_TO_SEC(TIME)返回转化为秒的TIME值
如SELECT TIME_TO_SEC('23:23:00'),结果为84180秒
SEC_TO_TIME(SECOND)返回SECOND被转化为TIME的值,格式为‘HH:MM:SS’或者HHMMSS

计算日期和时间的函数
计算日期和时间的函数有DATE_ADD(),ADDDATE(),DATE_SUB(),SUBDATE(),ADDTIME(),SUBTIME(),DATE_DIFF()
DATE_ADD(DATE INTERVAL EXPR TYPE) DATE_SUB(DATE INTERVAL EXPR TYPE),其中,DATE是一个DATETIME或者DATE类型的值,用来指定起始时间,XEPR是一个表达式,用来指定从起始日期添加或减去的时间间隔值,EXPR是一个字符串,对于负值的时间间隔,它可以以一个负号'-'开头
如果DATE是一个DATE值,计算值会包括YEAR,DATE,DAY部分,结果是一个DATE值,否则,结果是一个DATETIME值。
DATE_SUB执行的是一个减运算,SUBDATE()也一样。
如:SELECT DATE_ADD('2010-12-31 23:59:59',INTERVAL 1 SECOND)返回的是2011-01-01 00:00:00
ADDTIME(DATE, EXPR)函数将EXPR值添加到DATE,并返回修改后的值,DATE是一个日期或者时间的表达式,而EXPR是一个时间表达式
DATEDIFF(DATE1,DATE2)返回两个日期之间的间隔天数,例如“
SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31')返回结果是1

将日期和时间格式化的函数
DATE_FORMAT(DATE,'FORMAT')根据FORMAT指定的格式显示DATE的值
如:SELECT DATE_FORMAT('1997-10-04 22:23:20','%H :%i :%s')返回 22:23:20


条件判断函数
条件判断函数也成为控制流程函数,根据满足的条件不同,执行相应的流程,
IF(EXPR,V1,V2)如果表达式的值为TRUE,则返回V1,否则返回V2.
IFNULL(V1,V2)假如V1的值不是NULL,则返回V1的值,否则返回值为V2,IFNULL()的返回值为数字或者字符串,具体情况根据其语境。
CASE()
CATE EXPR WHERE V1 THEN R1 [WHEN V2 THEN R2]END 


系统信息函数
VERSION()返回MySQL服务器的版本字符串。这个版本号使用UTF字符集
CONNECTION_ID()返回服务器当前连接的次数,每个连接都有唯一的ID
SHOW PROCESSLIST显示有哪些线程正在运行,如果是ROOT账户,能看到所有用户的连接,如果是普通账号,则只能看到自己占用的连接,此命令只显示100条。
SHOW FULL PROCESSLIST列出所有的运行线程

获取用户名的函数
USER(),CURRENT_USER(),SYSTEM_USER(),SESSION_USER()这几个函数返回当前被MySQL服务器验证的用户名和主机名组合。
如:SELECT USER(),CURRENT_USER(),SYSTEM_USER()返回
root@localhost   root@localhost   root@localhost

获取字符串的字符集和排序方式的函数()
CHARSET()返回字符串str的字符集

获取最后一个自动生成的ID值得函数
LAST_INSERT_ID()返回最后一次INSERT或者UPDATE 为AUTO_INCREMENT列设置得第一个发生得值

加密函数PASSWORD(STR)
PASSWORD(STR)返回从明文密码STR计算得出得加密后的字符串,当参数为NULL的时候,返回也为NULL

加密函数MD5()
MD5(STR)为字符串计算出一个128比特的校验和,如果参数为NULL,则返回为NULL

加密函数ENCODE(STR,PWSD_STR)
ENCODE(STR,PWSD_STR)使用PSWD_STR作为密码,加密STR,使用DECODE()解密结果,是一个和STR长度相同的二进制字符串。

解密函数DECODE(CRYPT_STR,PSWD_STR)
使用PSWD_STR作为密码,解密加密字符串CRYPT_STR,CRYPT_STR是由ENCODE()加密来的字符串。

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

不同进制的数字进行转换
CONV(N,FROM_BASE,TO_BASE)函数进行不同进制的数字间的转换,返回值为数值N的字符串表示,由FROM_BASE进制,转为TO_BASE进制,如果由任意一个参数为NULL,则返回为NULL,自变量N被理解为一个整数,但是可以被指定为一个整数或者字符串,最小基数为2,最大基数为36.
如:CONV('A',16,2)表示将A从16进制转为2进制

IP地址于数字转换的函数
INET_ATON(EXPR)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数,地址可以是4或者8bit的地址

加锁函数和解锁函数
GET_LOCK(STR,TIMEOUT)设法使用字符串STR给定的名字得到一个锁,持续时间TIMEOUT秒,若成功得到锁,则返回1,如果超式,则返回0,如果发生错误,则返回NULL,假如由一个用GET_LOCK()得到的锁,当执行RELEASE_LOCK()或连接断开时这个锁就会解除

重复执行指定操作的函数
BENCHMARK(COUNT,EXPR)函数重复COUNT此执行表达式EXPR,它可以用于计算MySQL处理表达式的速度,其结果通常为0,表示处理速度很快,另一个作用是它可以在MySQL客户端内部报告语句执行的时间
如:SELECT PASSWORD('NEWPWD')显示执行0秒
用BENCHMARK(5000,PASSWORD('NEWPWD')),显示时间为0.67秒。

改变字符集的函数
CONVERT(...USING ...)带有USING的CONVERT()函数被用来在不同的字符集之间转化数据,
如:SELECT CHARSET(CONVERT('STRING' USING LATING))返回结果为LATIN

改变数据类型的函数
CAST(X,AS TYPE)和CONVERT(X,TYPE)函数将一个类型的值转换为另一个类型的值,可以转换的类型由,BINARY,CHAR(N),DATE,TIME,DATETIME,DECIMAL,SIGNED,
UNSIGNED
如:SELECT CAST(100 AS CHAR(2)),CONVERT('2010-10-01 12:12:12',TIME)返回值为10和12:12:12







 

Tags:MySQL   函数

很赞哦! ()

文章评论

    共有条评论来说两句吧...

    用户名:

    验证码:

本站推荐

站点信息

  • 网站名称:JavaStudy
  • 建站时间:2019-1-14
  • 网站程序:帝国CMS7.5
  • 文章统计242篇文章
  • 标签管理标签云
  • 统计数据百度统计
  • 微信公众号:扫描二维码,关注我们