MySQL常用函数
2017-02-28 15:57
162 查看
经常编写程序的朋友一定体会得到函数的重要性,丰富的函数往往能使用户的工作事半功倍,函数能帮助用户做很多事情。MySQL也提供了很多内建函数帮助开发人员编写简单快捷的SQL语句、
一:字符串函数
字符串函数是最常用的一种函数,在MySQL中,字符串函数同样是最丰富的一类函数,如下图列举了MySQL常用的字符串函数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228121812048-2086048460.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228121859266-358042277.png)
下面通过几个实例介绍每个函数的用法:
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228122137079-1312853383.png)
上面的例子把'aaa','bbb','ccc'3个字符串连接成了一个字符串'aaabbbccc',另外,任何字符串与null进行连接的结果都将是null。
INSERT(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长的子串替换为字符串instr;
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228134347048-802449686.png)
LOWER(str)和UPPER(str)函数,将字符串转换成小写或大写。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228134713438-1263163677.png)
LEFT(str,x)和RIGHT(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符,如果第二个参数是NULL,那么将不返回任何字符串。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228135039095-2113091606.png)
LPAD(str,n,pad)和RPAD(str,n,pad)函数:用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141043063-1831058625.png)
LTRIM(str)和RTRIM(str)函数:去掉字符串str左侧和右侧空格。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141406204-2035659422.png)
REPEAT(str,x)函数:返回str重复x次的结果。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141609423-1277260612.png)
REPLACE(str,a,b)函数:用字符串b替换字符串str中所有出现的字符串a.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141837626-1060003821.png)
STRCMP(s1,s2)函数:比较字符串s1和s2的ASCII码值的大小。
如果s1比s2小,那么返回-1,如果s1与s2相等,那么返回0;如果s1比s2大,那么返回1,
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143049298-1181796552.png)
TRIM(str)函数:去掉目标字符串的开头和结尾的空格
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143307813-893996677.png)
SUBSTRING(str,x,y)函数:返回从字符串str中的第x位置起y个字符长度的字符串.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143650595-88254973.png)
二:数值函数
MySQL中另外一类很重要的函数就是数值函数,这些函数能处理很多数值方面的运算,
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143923860-1139185218.png)
下面结合实例说明这些函数的用处:
ABS(x)函数:返回x的绝对值
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228144436907-1580830260.png)
CEIL(x)函数:返回大于x的最小整数:
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228144603876-507714314.png)
FLOOR(x)函数:返回小于x的最大整数,和ceil的用法刚好相反
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228144759376-818691214.png)
MOD(x,y)函数:返回x/y的模
和x%y的结果相同,模数和被模数任何一个为null结果都为null,
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228145042141-4077712.png)
RAND()函数:返回0~1内的随机值,每次执行结果都不一样.利用此函数可以取任意指定范围内的随机数,比如需要产生0~100内的任意随机整数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228145331266-444624925.png)
ROUND(x,y)函数:返回参数x的四舍五入的有y为小数的值
如果是整数,将会保留y位数量的0;如果不写y,则默认y为0,即将x四舍五入后取整,适合于将所有数字保留同样小数位的情况
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228145820141-1991513436.png)
TRUNCATE(x,y)函数:返回数字x截断为y位小数的结果:
注意:truncate和round的区别在于truncate仅仅是截断,而不进行四舍五入。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228150337563-1487989094.png)
三:日期和时间函数
有时我们会遇到这样的需求:当前时间是多少,下个月的今天是星期几,统计截止到当前日期前3天的收入总和,等等,这些需求就需要日期和时间函数来实现
下面结合一些实例看看这些函数的使用方法吧
CURDATE()函数:返回当前日期,只包含年月日
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228150852938-1446817673.png)
CURTIME()函数:返回当前时间,只包含时分秒
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151003923-1153808785.png)
NOW()函数:返回当前的日期和时间,年月日时分秒全都包含
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151119813-1869910171.png)
UNIX_TIMESTAMP(date)函数:返回日期date的UNIX时间戳.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151321595-144057576.png)
FROM_UNIXTIME(unixtime)函数:返回UNIXTIME时间戳的日期值,和UNIX_TIMESTAMP(date)互为逆操作.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151622407-1028559136.png)
WEEK(date)、YEAR(date)、HOUR(time)、MINUTE(time)、MONTHNAME(date)用法:
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228152302938-1067207935.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228152446360-1952978722.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228152645735-1652755310.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228153142579-1572387532.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228153554157-1863708490.png)
\
DATEDIFF(date1,date2)函数:用来计算两个日期之间相差的天数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228153822204-1864022717.png)
四:流程函数
流程函数也是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能够提高语句的效率。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228154212485-1188422978.png)
下面的实例看看它们的用法吧
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155222954-1143350241.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155231907-1527684893.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155243345-1972102623.png)
此外还有一些常用的函数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155422923-601207627.png)
这里就不再介绍其具体用法了。
一:字符串函数
字符串函数是最常用的一种函数,在MySQL中,字符串函数同样是最丰富的一类函数,如下图列举了MySQL常用的字符串函数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228121812048-2086048460.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228121859266-358042277.png)
下面通过几个实例介绍每个函数的用法:
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228122137079-1312853383.png)
上面的例子把'aaa','bbb','ccc'3个字符串连接成了一个字符串'aaabbbccc',另外,任何字符串与null进行连接的结果都将是null。
INSERT(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长的子串替换为字符串instr;
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228134347048-802449686.png)
LOWER(str)和UPPER(str)函数,将字符串转换成小写或大写。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228134713438-1263163677.png)
LEFT(str,x)和RIGHT(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符,如果第二个参数是NULL,那么将不返回任何字符串。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228135039095-2113091606.png)
LPAD(str,n,pad)和RPAD(str,n,pad)函数:用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141043063-1831058625.png)
LTRIM(str)和RTRIM(str)函数:去掉字符串str左侧和右侧空格。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141406204-2035659422.png)
REPEAT(str,x)函数:返回str重复x次的结果。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141609423-1277260612.png)
REPLACE(str,a,b)函数:用字符串b替换字符串str中所有出现的字符串a.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228141837626-1060003821.png)
STRCMP(s1,s2)函数:比较字符串s1和s2的ASCII码值的大小。
如果s1比s2小,那么返回-1,如果s1与s2相等,那么返回0;如果s1比s2大,那么返回1,
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143049298-1181796552.png)
TRIM(str)函数:去掉目标字符串的开头和结尾的空格
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143307813-893996677.png)
SUBSTRING(str,x,y)函数:返回从字符串str中的第x位置起y个字符长度的字符串.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143650595-88254973.png)
二:数值函数
MySQL中另外一类很重要的函数就是数值函数,这些函数能处理很多数值方面的运算,
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228143923860-1139185218.png)
下面结合实例说明这些函数的用处:
ABS(x)函数:返回x的绝对值
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228144436907-1580830260.png)
CEIL(x)函数:返回大于x的最小整数:
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228144603876-507714314.png)
FLOOR(x)函数:返回小于x的最大整数,和ceil的用法刚好相反
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228144759376-818691214.png)
MOD(x,y)函数:返回x/y的模
和x%y的结果相同,模数和被模数任何一个为null结果都为null,
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228145042141-4077712.png)
RAND()函数:返回0~1内的随机值,每次执行结果都不一样.利用此函数可以取任意指定范围内的随机数,比如需要产生0~100内的任意随机整数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228145331266-444624925.png)
ROUND(x,y)函数:返回参数x的四舍五入的有y为小数的值
如果是整数,将会保留y位数量的0;如果不写y,则默认y为0,即将x四舍五入后取整,适合于将所有数字保留同样小数位的情况
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228145820141-1991513436.png)
TRUNCATE(x,y)函数:返回数字x截断为y位小数的结果:
注意:truncate和round的区别在于truncate仅仅是截断,而不进行四舍五入。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228150337563-1487989094.png)
三:日期和时间函数
有时我们会遇到这样的需求:当前时间是多少,下个月的今天是星期几,统计截止到当前日期前3天的收入总和,等等,这些需求就需要日期和时间函数来实现
下面结合一些实例看看这些函数的使用方法吧
CURDATE()函数:返回当前日期,只包含年月日
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228150852938-1446817673.png)
CURTIME()函数:返回当前时间,只包含时分秒
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151003923-1153808785.png)
NOW()函数:返回当前的日期和时间,年月日时分秒全都包含
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151119813-1869910171.png)
UNIX_TIMESTAMP(date)函数:返回日期date的UNIX时间戳.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151321595-144057576.png)
FROM_UNIXTIME(unixtime)函数:返回UNIXTIME时间戳的日期值,和UNIX_TIMESTAMP(date)互为逆操作.
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228151622407-1028559136.png)
WEEK(date)、YEAR(date)、HOUR(time)、MINUTE(time)、MONTHNAME(date)用法:
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228152302938-1067207935.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228152446360-1952978722.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228152645735-1652755310.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228153142579-1572387532.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228153554157-1863708490.png)
\
DATEDIFF(date1,date2)函数:用来计算两个日期之间相差的天数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228153822204-1864022717.png)
四:流程函数
流程函数也是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能够提高语句的效率。
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228154212485-1188422978.png)
下面的实例看看它们的用法吧
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155222954-1143350241.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155231907-1527684893.png)
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155243345-1972102623.png)
此外还有一些常用的函数
![](https://images2015.cnblogs.com/blog/1019006/201702/1019006-20170228155422923-601207627.png)
这里就不再介绍其具体用法了。