mysql函数知识点

1、数学函数

        1)、绝对值函数:ABS(x);

        2)、求圆周率的函数:PI();

        3)、平方根函数:SQRT(x),返回非负数x的二次方根;

        4)、求余函数:MOD(x,y);

        5)、获取整数的函数:

                CEIL(x)和CEILING(x),指返回不小于x的最小整数值,返回值转换为BIGINT类型。

                FLOOR(x),指返回不大于x的最大整数值,返回值转换为BIGINT类型。

        6)、获取随机函数:

                RAND()和RAND(x),返回一个随机浮点数v,范围在0到1之间。

                若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。

        7)、四舍五入函数:

                ROUND(x),指返回最接近于x的整数,对x值进行四舍五入。

                ROUND(x,y),指返回最接近于x的数,其值保留小数点后面y位,若y为负值,则将保留x值到小数点左边y位。

                TRUNCATE(x,y),指返回被舍去小数点后y位的数字x。

                若y为0,则结果不带有小数点或不带有小数部分。

                若y为负数,则截去(归零)x小数点左起第y位开始后面所有低位的值。

        8)、符号函数:

                SIGN(x),指返回参数的符号,x的值为负、零或正时返回结果依次为-1、0或1。

        9)、幂运算函数:

                POW(x,y)和POWER(x,y)函数返回x的y次乘方的结果值。

                EXP(x)函数返回e的x乘方后的值。

        10)、对数运算函数:

                LOG(x)返回x的自然对数,x相对于基数e的对数。对数定义域不能为负数否则返回NULL。

                LOG10(x)返回x的基数为10的对数。

        11)、角度与弧度相互转换的函数:

                RADIANS(x)将参数x由角度转换为弧度。

                DEGREES(x)将参数x有弧度转换为角度。

        12)、正弦函数:

               SIN(x)返回x的正弦,其中x为弧度值。

        13)、反正弦函数:

                ASIN(x)返回x的反正弦,即正弦为x的值。若x不在-1到1的范围之内,则返回null。

        14)、余弦函数:

                COS(x)返回x的余弦,其中x为弧度值。

        15)、反余弦函数:

                ACOS(x)返回x的反余弦,即余弦为x的值。若x不在-1到1的范围之内,则返回null。

        16)、正切函数:

                TAN(x)返回x的正切,其中x为弧度值。

        17)、反正切函数:

                ATAN(x)返回x的反正切,即正切为x的值。

        18)、余切函数:

                COT(x)返回x的余切,其中x为弧度值。

2、字符串函数

        1)、计算字符串字符数的函数:

                CHAR_LENGTH(str)返回值为字符串str所包含的字符个数。一个多字节字符算一个单字符。

        2)、计算字符串长度的函数:

                LENGTH(str)返回值为字符串str的字节长度。一个汉字两个字节。

        3)、合并字符串函数:

                CONCAT(s1,s2,.....)返回结果为连接参数产生的字符串,或许有一个或多个参数。

                如有任何一个参数为null,则返回值为null。

                如果所有参数均为非二进制字符串,则结果为非二进制字符串。

                如果参数中有一个二进制字符串,则结果为二进制字符串。

                CONCAT_WS(x,s1,s2,.....)第一个参数x是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。

                分隔符可以是一个字符串,也可以是其他参数。

                如果分隔符为null,则结果为null。

                函数会忽略任何分隔符参数后的null值。

        4)、替换字符串的函数:

                INSERT(s1,x,len,s2)返回字符串s1,其子字符串起始于x位置和被字符串s2取代len字符。

如果x超过字符串长度,则返回原始字符串。

假如len的长度大于其他字符串长度,则从位置x开始替换,若任何一个参数为null,则返回值为null。

        5)、字母大小写转换函数:

                LOWER(str)或者LCASE(str),转换成小写。

                UPPER(str)或者UCASE(str),转换成大写。

        6)、获取指定长度的字符串的函数:

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

                RIGHT(s,n)返回字符串s最右边的n个字符。

        7)、填充字符串的函数:

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

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

        8)、删除空格的函数:

                LTRIM(s)返回字符串s,删除左侧空格

                RTRIM(s)返回字符串s,删除右侧空格

                TRIM(s)返回字符串s,删除两侧空格

        9)、重复生成字符串的函数:

                REPEAT(s,n)返回一个由重复的字符串s组成的字符串,字符串s的数目等于n。

                若n<=0,则返回一个空字符串。若s或n为NULL,则返回NULL。

        10)、空格函数:

                SPACE(n)返回一个由n个空格组成的字符串。

        11)、替换函数:

                REPLACE(s,s1,s2)使用字符串s2替换字符串s中所有的字符串s1。

        12)、比较字符串大小的函数:

                STRCMP(s1,s2)若所有的字符串均相同,则返回0;

                若根据当前分类次序,第一个参数小于第二个参数,则返回-1,其他情况返回1。

        13)、获取子串的函数:

                SUBSTRING(s,n,len)和MID(s,n,len)带有len参数的格式,从字符串s返回一个长度同len相同的子字符串,起始于位置n。也可能对n使用一个负值,假若这样,则子字符串的位置起始于字符串结尾的n字符,即倒数第n个字符,而不是字符串开头位置。

        14)、匹配子串开始位置的函数:

                LOCATE(str1,str)、POSITION(str1 IN str)、INSTR(str1,str)这三个函数作用相同,返回子字符串str1在字符串str中的开始位置。

        15)、字符串逆序的函数:

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

        16)、返回指定位置的字符串函数:

                ELT(N,字符串1,字符串2,字符串3,.......,字符串N)若N=1,则返回字符串1;

                若N=2,则返回字符串2,以此类推。若N小于1或者大于参数的数目,则返回值为NULL。

        17)、返回指定字符串位置的函数:

                FIELD(s,s1,s2,...)返回字符串s在列表s1,s2,....中第一次出现的位置,在找不到s的情况下,返回值为0。若s为null,则返回0;

        18)、返回子串位置的函数:

                FIND_IN_SET(s1,s2)返回子串s1在字符串列表s2中出现的位置,字符串列表是一个由多个“,”分开的字符串组成的列表。如果s1不在s2或s2为空,则返回值为0。如果任意一个参数为NULL,则返回值为NULL。这个函数的第一个参数包含一个“,”时将无法正常运行。

        19)、选取字符串的函数:

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

3、日期和时间函数

        1)、获取当前日期的函数:

                CURDATE()和CURRENT_DATE()函数作用相同,将当前日期按照'YYYY-MM-DD'或'YYYYMMDD'格式的值返回。

        2)、获取当前时间的函数:

                CURTIME()和CURRENT_TIME()函数作用相同,将当前日期按照'HH:MM:SS'或'HHMMSS'格式的值返回。

        3)、获取当前日期和时间的函数:

                CURRENT_TIMESTAMP()、LOCALTIME()、NOW()和SYSDATE()函数作用相同,均返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS'或'YYYYMMDDHHMMSS'。

        4)、UNIX时间戳函数:

                UNIX_TIMESTAMP(date),返回一个UNIX时间戳。

                FROM_UNIXTIME(date)把UNIX时间戳转换为普通格式时间。

        5)、获取UTC日期的函数:

                UTC_DATE()将当前UTC(世界标准时间)日期按照'YYYY-MM-DD'或'YYYYMMDD'格式的值返回。

        6)、获取UTC时间的函数:

                UTC_TIME()将当前UTC(世界标准时间)时间按照'HH:MM:SS'或'HHMMSS'格式的值返回。

        7)、获取月份函数:

                MONTH(date)函数返回date对应的月份,范围值从1-12。

                MONTHNAME(date)函数返回date对应的月份的英文全称。

        8)、获取星期的函数:

                DAYNAME(date)函数返回date对应的工作日的英文名称,例如:Sunday,Monday等。

                DAYOFWEEK(date)函数返回date对应的一周中的索引(位置),1表示周日,2表示周一,.....,7表示周六

                WEEKDAY(date)函数返回date对应的工作日的索引(位置),0表示周一,1表示周二,.....,6表示周日

        9)、获取星期数的函数:

                WEEK(date)计算日期date是一年中的第几周。

                WEEKOFYEAR(date)计算某天位于一年中的第几周,范围从1~53,类似于WEEK(date,3)。

        10)、获取天数的函数:

                DAYOFYEAR(date)函数返回date是一年中的第几天,范围是从1~366。

                DAYOFMONTH(date)函数返回date是一月中的第几天,范围是从1~31。

        11)、获取年份的函数:

                YEAR(date)返回date对应的年份,范围是1970~2069。

        12)、获取季度的函数:

                QUARTER(date)返回date对应的一年中的季度值,范围是从1~4。

        13)、获取小时的函数:

                HOUR(time)返回time对应的时钟数,范围是从0~24。

        14)、获取分钟的函数:

                MINUTE(time)返回time对应的分钟数,范围是从0~59。

        15)、获取秒数的函数:

                SECOND(time)返回time对应的秒数,范围是从0~59。

        16)、获取日期指定值的函数:

                EXTRACT(type FROM date)。

        17)、时间和秒数转换的函数:

                TIME_TO_SEC(time)返回已转换为秒数的time参数。转换公式为:小时*3600+分钟*60+秒

                SEC_TO_TIME(seconds)返回已转换为小时、分钟、秒数的seconds参数。

                其格式为HH:MM:SS或HHMMSS。

        18)、计算日期和时间的函数:

                DATE_ADD(date,expr)、ADDDATE(date,expr)日期加函数

                DATE_SUB(date,expr)、SUBDATE(date,expr)日期减函数

                ADDTIME(date,expr)时间加函数

                SUBTIME(date,expr)时间减函数

                DATE_DIFF(date1,date2)返回起始时间date1和结束时间date2之间的天数。

                date1和date2为日期或date-and-time表达式。计算中只用到这些值的日期部分。

        19)、将日期和时间格式化的函数:

                DATE_FORMAT(date,format)日期格式化。

                TIME_FORMAT(time,format)时间格式化。

                GET_FORMAT(val_type,format_type)返回日期时间字符串的显示格式。

4、条件判断函数

        1)、IF(expr,v1,v2):

                如果表达式expr是true,则IF()返回v1,否则返回v2。

                IF()的返回值为数字值或字符串值。具体情况视所在语境而定。

        2)、IFNULL(v1,v2):

                假如v1不为NULL,则IFNULL()的返回值为v1,否则返回值为v2。

                IFNULL()的返回值为数字值或字符串值。具体情况视所在语境而定。

        3)、CASE函数:

                表示如果expr值等于某个值,则返回对应位置THEN后面的结果。

                如果与所有值都不相等,则返回ELSE后面的m

CASE expr WHEN v1 THEN r1

[WHEN v2 THEN r2]

[ELSE rn]

END

5、系统信息函数

        1)、获取mysql版本号的函数:

                VERSION();

        2)、获取连接数的函数:

                CONNECTION_ID();

        3)、查看那些线程在运行:

                SHOW PROCESSLIST,只列出前100条;

                SHOW FULL PROCESSLIST列出全部。

        4)、获取数据库名:

                DATABASE(),SCHEMA();

        5)、获取用户名的函数:

                USER()、CURRENT_USER、CURRENT_USER()、SYSTEM_USER()、SESSION_USER()

        6)、获取字符串的字符集:

                CHARSET(str)

        7)、获取字符串的字符排列方式:

                COLLATION(str)

        8)、获取最后一个自动生成的ID值得函数:

                LAST_INSERT_ID();

6、加密解密函数

        1)、加密函数:

                PASSWORD(str)从原文密码str计算并返回加密后的密码字符串,当参数为NULL时返回NULL。此加密是单向的(不可逆)。

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

                ENCODE(str,pswd_str)使用pswd_str作为密码,加密str。

        2)、解密函数:

                DENCODE(crypt_str,pswd_str)使用pswd_str作为密码,解密加密字符串crypt_str。crypt_str是由ENCODE()返回的字符串

7、其他函数

        1)、格式化函数:

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

        2)、不同进制的数字进行函数转换:

                CONV(N,from_base,to_base)返回值为数值N的字符串表示,由from_base进制转化为to_base进制,如果任意参数为null,则返回值为NULL。自变量N被理解为一个整数,但是可以被指定为整数或字符串。最小基数为2,最大基数为36。

        3)、IP地址与数字相互转换的函数:

                INET_ATON(expr)给出y一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。地址可以s是4或8比特地址。

                INET_NTOA(expr)给定一个数字网络地址(4或8比特),返回作为字符串的该地址的店地址表示。

        4)、加锁函数和解锁函数:

                GET_LOCK(str,timeout)设法使用字符串str给定的名字得到一个锁。

                RELEASE_LOCK(str)解锁。

                IS_FREE_LOCK(str)检查名为str的锁是否可以使用(换言之没有被封锁)。

                IS_USED_LOCK(str)检查名为str的锁是否正在被使用(换言之被封锁)。

        5)、重复执行指定操作的函数:

                BENCHMARK(count,expr)函数重复count次执行表达式expr。可以用于计算MYSQL处理表达式的速度。结果通常为0(0只是表示处理过程很快,并不是没有花费时间)。另一个作用是他可以在mysql客户端内部报告语句执行时间。

        6)、改变字符集的函数:

                CONVERT(... USING ...)用来在不同的字符集之间转换数据。

        7)、改变数据类型的函数:

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

8. 聚合函数

        用于从多行数据中计算汇总值,例如:
                COUNT(column):计算指定列中非NULL值的数量。
                SUM(column):计算指定列的总和。
                AVG(column):计算指定列的平均值。
                MAX(column):找出指定列的最大值。
                MIN(column):找出指定列的最小值。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值