字符串函数

1、char_length(str) 计算字符串字符个数。
2、length(str) 返回值为字符串str的长度,单位为字节。(汉字3个字节,字母一个)
3、concat(s1,s2,…) (+不可以拼接了)返回连接参数产生的字符串,一个或多个待拼接的内容,任意一个为NULL则返回值为NULL。
4、concat_ws(x,s1,s2,…) 返回多个字符串拼接之后的字符串,每个字符串之间有一个x。
group_concat(distinct FIELD_NAME oder by FIELD_NAME[DESC]) #配合分组查询进行行转列
5、insert(s1,x,len,s2) 返回字符串s1,其子字符串起始于位置x,被字符串s2取代len个字符。#插入,删除,替换
6、lower(str)、lcase(str) 将str中的字母全部转换成小写。
7、upper(str)、ucase(str) 将字符串中的字母全部转换成大写。
8、left(s,n)、right(s,n)、mid(s,n,len) left返回字符串s从最左边开始的n个字符,right返回字符串s从最右边开始的n个字符,mid返回字符串s从n开始len长度的字符串。
substring_index
9、lpad(s1,len,s2) 前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符;
10、rpad(s1,len,s2) 前者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符。
11、ltrim(s)、rtrim(s) 前者返回字符串s,其左边所有空格被删除;后者返回字符串s,其右边所有空格被删除。
12、trim(s) 返回字符串s删除了两边空格之后的字符串。
13、trim(s1 FROM s) 删除字符串s两端所有子字符串s1,未指定s1的情况下则默认删除空格。???
14、repeat(s,n) 返回一个由重复字符串s组成的字符串,字符串s的数目等于n。
15、space(n) 返回一个由n个空格组成的字符串。
16、replace(s,s1,s2) 返回一个字符串,用字符串s2替代字符串s中所有的字符串s1。
17、strcmp(s1,s2) 若s1和s2中所有的字符串都相同,则返回0;根据当前分类次序,第一个参数小于第二个则返回-1,其他情况返回1。
select strcmp(‘2’,‘111’);—返回1
18、substring(s,n,len)、MID(s,n,len) 两个函数作用相同,从字符串s中返回一个第n个字符开始、长度为len的字符串。
19、locate(str1,str)、position(str1 IN str)、INSTR(str,str1) 三个函数作用相同,返回子字符串str1在字符串str中的开始位置(从第几个字符开始)。
20、reverse(s) 将字符串s反转。
21、elt(N,str1,str2,str3,str4,…) 返回第N个字符串,若位置不存在返回null。
22、field(s,s1,s2,…) 返回第一个与字符串s匹配的字符串的位置,没有返回0。
23、find_in_set(s1,‘str1,str2,str3…’) 返回在参数2字符串中与s1匹配的字符串的位置,不存在返回0。
24、make_set(x,s1,s2,…) #x转化为二进制后,保留和set集合元素数量位低位值,s1是低位,按x的二进制数从s1,s2…,sn中选取对应的位数是1的字符串

数学函数

1、abs(X) 返回X的绝对值
2、floor(X) 返回不大于X的最大整数
3、ceil(X)、ceiling(X)返回不小于X的最小整数
4、truncate(X,D)返回数值X保留到小数点后D位的值,截断时不进行四舍五入。
5、round(X)返回离X最近的整数,截断时要进行四舍五入
6、round(X,D)保留X小数点后D位的值,截断时要进行四舍五入
7、rand()返回0~1的随机数
8、sign(X)返回X的符号(负数,零或正)对应-1,0或1
9、PI()返回圆周率的值。默认的显示小数位数是7位。
10、pow(x,y)、power(x,y)返回x的y次乘方的值。
11、sqrt(x)返回非负数的x的二次方根
12、exp(x)返回e的x乘方后的值
13、mod(N,M)返回N除以M以后的余数。
14、log(x)=ln(x)返回x的自然对数,x相对于基数e的对数。
15、log10(x)返回x的基数为10的对数。
16、radians(x)返回x由角度转化为弧度的值。
17、degrees(x)返回x由弧度转化为角度的值。
18、sin(x)、asin(x)前者返回x的正弦,其中x为给定的弧度值;后者返回x的反正弦值,x为正弦。
19、cos(x)、acos(x)前者返回x的余弦,其中x为给定的弧度值;后者返回x的反余弦值,x为余弦。
20、tan(x)、atan(x)前者返回x的正切,其中x为给定的弧度值;后者返回x的反正切值,x为正切。
21、cot(x)返回给定弧度值x的余切。

日期函数

1、curdate()、CURRENT_DATE() 返回当前日期,格式:yyyy-MM-dd。
2、curtime()、CURRENT_TIME() 返回当前时间,格式:HH:mm:ss。
3、now()、CURRENT_TIMESTAMP()、LOCALTIME()、SYSDATE()、LOCALTIMESTAMP() 返回当前日期和时间,格式:yyyy-MM-dd HH:mm:ss。
4、unix_timestamp() 返回一个格林尼治标准时间1970-01-01 00:00:00到现在的秒数。
5、unix_timestamp(‘yyyy-MM-dd’) 返回一个格林尼治标准时间1970-01-01 00:00:00到指定时间的秒数。
6、from_unixtime(date) 和UNIX_TIMESTAMP互为反函数,把UNIX时间戳转换为普通格式的时间。
7、month(d) 返回日期d中的月份值,范围是1~12。
8、dayname(d) 返回日期d是星期几,如:Monday、Tuesday等。
9、dayofweek(d) 返回日期d是星期几,如:1表示星期日,2表示星期一等。
10、weekday(d) 返回日期d是星期几,如:0表示星期一,1表示星期二等。
11、week(d) 计算日期d是本年的第几个星期,范围是0~53。
12、weekofyear(d) 计算日期d是本年的第几个星期,范围是1~53。
13、dayofyear(d) 计算日期d是本年的第几天。
14、dayofmonth(d) 计算日期d是本月的第几天。
15、year(d) 返回日期d中的年份值。
16、quarter(d) 返回日期d是第几季度,范围是1~4。
17、hour(t) 返回时间t中的小时值。
18、minute(t) 返回时间t中的分钟值。
19、second(t) 返回时间t中的秒钟值。
20、DATEDIFF(d1,d2)计算日期d1与d2之间相隔的天数。
21、ADDDATE(d,n) 计算起始日期d加上n天的日期。
22、ADDDATE(d,INTERVAL ± year|quarter|month|day|hour|year_month|)
adddate(‘2020-11-01’,interval ‘1:5’ year_month)计算起始日期d加上一个时间段后的日期。
23、date_add(d,INTERVAL expr type) 同ADDDATE(d,INTERVAL expr type)
24、subdate(d,n) 计算起始日期d减去n天的日期。
25、subdate(d,INTERVAL expr type) 计算起始日期d减去一个时间段后的日期。
26、addtime(t,n) 计算起始时间t加上n秒的时间。
27、subtime(t,n) 计算起始时间t减去n秒的时间。
28、date_format(d,’%Y-%m-%d %H:%i:%s’) 按照表达式 f 的要求显示日期d。
计算周岁
select floor (datediff(now(),birthday)/365);
本周第一天
select adddate(‘2020-10-21’,interval concat(’-’,dayofweek(‘2020-10-21’)) +2 day);
本季度第一天
select concat_ws(’-’,year(now()),(quarter(now())-1)*3+1,‘1’);

系统级函数

1、if(expr,v1,v2) 如果表达式expr成立,则执行v1;否则执行v2
2、ifnull(fieldV,defaultV)如果fieldV不为空,则显示fieldV的值;否则显示defaultV的值
3、case when expr1 then v1 [when expr2 then v2 …][else vn] end
case表示函数开始,end表示函数结束。如果表达式expr1成立,则返回v1的值;如果表达式expr2成立,则返回v2的值。依次类推,最后遇到else时,返回vn的值。
4、case expr when e1 then v1 [when e2 then v2 …][else vn] end
case表示函数开始,end表示函数结束。如果表达式expr取值为e1,则返回v1的值;如果表达式expr取值为e2,则返回v2的值,依次类推,最后遇到else,则返回vn的值
5、database();
6、select @@identity
7、password(src_str)
8、md5(concat(pass_str,src_str,pass_str));
9、encode(src_str,pass_str)
10、decode(crypt_str,pass_str) 使用字符串pass_str来为crypt_str解密

聚合函数

min(NUMBER_FIELD_NAME)
max(NUMBER_FIELD_NAME)
sum(NUMBER_FIELD_NAME)
avg(NUMBER_FIELD_NAME)
count(1/distinct FIELD_NAME)