经常编写程序的朋友一定体会得到函数的重要性,丰富的函数往往能使用户的工作事半功倍,函数能帮助用户做很多事情。MySQL也提供了很多内建函数帮助开发人员编写简单快捷的SQL语句、
一:字符串函数
字符串函数是最常用的一种函数,在MySQL中,字符串函数同样是最丰富的一类函数,如下图列举了MySQL常用的字符串函数
下面通过几个实例介绍每个函数的用法:
上面的例子把'aaa','bbb','ccc'3个字符串连接成了一个字符串'aaabbbccc',另外,任何字符串与null进行连接的结果都将是null。
INSERT(str,x,y,instr)函数:将字符串str从第x位置开始,y个字符长的子串替换为字符串instr;
LOWER(str)和UPPER(str)函数,将字符串转换成小写或大写。
LEFT(str,x)和RIGHT(str,x)函数:分别返回字符串最左边的x个字符和最右边的x个字符,如果第二个参数是NULL,那么将不返回任何字符串。
LPAD(str,n,pad)和RPAD(str,n,pad)函数:用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度.
LTRIM(str)和RTRIM(str)函数:去掉字符串str左侧和右侧空格。
REPEAT(str,x)函数:返回str重复x次的结果。
REPLACE(str,a,b)函数:用字符串b替换字符串str中所有出现的字符串a.
STRCMP(s1,s2)函数:比较字符串s1和s2的ASCII码值的大小。
如果s1比s2小,那么返回-1,如果s1与s2相等,那么返回0;如果s1比s2大,那么返回1,
TRIM(str)函数:去掉目标字符串的开头和结尾的空格
SUBSTRING(str,x,y)函数:返回从字符串str中的第x位置起y个字符长度的字符串.
二:数值函数
MySQL中另外一类很重要的函数就是数值函数,这些函数能处理很多数值方面的运算,
下面结合实例说明这些函数的用处:
ABS(x)函数:返回x的绝对值
CEIL(x)函数:返回大于x的最小整数:
FLOOR(x)函数:返回小于x的最大整数,和ceil的用法刚好相反
MOD(x,y)函数:返回x/y的模
和x%y的结果相同,模数和被模数任何一个为null结果都为null,
RAND()函数:返回0~1内的随机值,每次执行结果都不一样.利用此函数可以取任意指定范围内的随机数,比如需要产生0~100内的任意随机整数
ROUND(x,y)函数:返回参数x的四舍五入的有y为小数的值
如果是整数,将会保留y位数量的0;如果不写y,则默认y为0,即将x四舍五入后取整,适合于将所有数字保留同样小数位的情况
TRUNCATE(x,y)函数:返回数字x截断为y位小数的结果:
注意:truncate和round的区别在于truncate仅仅是截断,而不进行四舍五入。
三:日期和时间函数
有时我们会遇到这样的需求:当前时间是多少,下个月的今天是星期几,统计截止到当前日期前3天的收入总和,等等,这些需求就需要日期和时间函数来实现
下面结合一些实例看看这些函数的使用方法吧
CURDATE()函数:返回当前日期,只包含年月日
CURTIME()函数:返回当前时间,只包含时分秒
NOW()函数:返回当前的日期和时间,年月日时分秒全都包含
UNIX_TIMESTAMP(date)函数:返回日期date的UNIX时间戳.
FROM_UNIXTIME(unixtime)函数:返回UNIXTIME时间戳的日期值,和UNIX_TIMESTAMP(date)互为逆操作.
WEEK(date)、YEAR(date)、HOUR(time)、MINUTE(time)、MONTHNAME(date)用法:
DATEDIFF(date1,date2)函数:用来计算两个日期之间相差的天数
四:流程函数
流程函数也是很常用的一类函数,用户可以使用这类函数在一个SQL语句中实现条件选择,这样做能够提高语句的效率。
下面的实例看看它们的用法吧
此外还有一些常用的函数
这里就不再介绍其具体用法了。