不管在什么语言中函数是一个非常重要的工具,只要给函数一个输入参数input parameter,函数就会输出我们想要的返回值output,今天就简单介绍下MySQL的常用函数,MySQL的函数超过200种,非常的多,想要熟记有点难度,而且有的不常用,慢慢也会生疏的,所以只要知道常用函数,对这些函数有一些概念,就算忘记怎么用了,也可以去查询参考文档的。工作和上学对于知识的应用方式最大的区别就是上学的时候要去记忆,工作的时候,不常用或者不熟的时候去查询就好了,反正书上都记着,能解决问题就行了,记的太多脑壳疼。
MySQL的函数大致分为以下几种:算术函数,字符串函数,日期函数,转换函数和聚合函数,算术函数和聚合函数已经在前述的学习中接触过了。
1.算术函数
1.1 加减乘除
不介绍了
1.2 绝对值-ABS
select m,abs(m) as abs_col from math;
1.2 求余-MOD
1.3 四舍五入-ROUND
select m,round(m) as round_col from math where m is not null; select m,round(m,1) as round_col from math where m is not null;
2.字符串函数
2.1 拼接函数-CONCAT
拼接函数在不同的DBMS中形式不一样,我用的MySQL,拼接函数是CONCAT
select product_name,product_type,concat(product_name,product_type) as str_concat from sale limit 2;
2.2 字符串长度函数-LENGTH
select product_name,length(product_name) as length_col from sale limit 2;
2.3 大小写转换函数-LOWER/UPPER
2.4 字符串替换函数-REPLACE
select m,replace(m,'ll','LL') as re_col from str; #m指定列数据,'ll'替换前字符,'LL'替换后字符
2.5 字符串截取函数-SUBSTRING
#m,2,1 m为指定列数据,2指第2个字符,1指第2个字符开始总共一个字符 select m,n,p,substring(m,2,1),substring(n,2,2),substring(p,2,3) from str;
这里有个需要注意的地方subtring函数是针对字符进行处理的,不论英文还是中文字符,而刚刚的length函数统计的是字节,utf-8中文两个字节,所以刚刚三个汉字统计长度为9。
3.日期函数
3.1 CURRENT_DATE/CURRENT_TIME/CURRENT_TIMESTAMP
select current_date,current_time,current_timestamp; #日期,时间和日期时间
3.2 日期元素截取函数-EXTRACT
select current_timestamp, extract(year from current_timestamp) as YERA, extract(month from current_timestamp) as MONTH, extract(day from current_timestamp) as DAY, extract(hour from current_timestamp) as HOUR, extract(minute from current_timestamp) as MINUTE, extract(second from current_timestamp) as SECOND;
4.转换函数
4.1 类型转化
select n,cast(n as signed int) from str;
4.2 NULL转换函数-COALESCE
select m,coalesce(m,null,1) from math; select coalesce(m,'a') from math; #用a替换m中的全部NULL