十函数
1集合函数 | 函数(distinct 列\值) | | avg() 平均值 和group by使用,计算每一组平均值;avg(price),avg(length)多个求平均值都加avg count() 行数 select cound(id) from 表 group by num; max() 最大值 不分组返回一个值,并且可以判断字符最大,和group by使用返回每个组最大值 min() 最小值 sum() 和 和group by使用,计算每一组总和
2null函数 | | if null(a,b) if null(1,2);2,if null(null,10);10,if null(110,’wrong’);wrong null if(a,b) ab相等,返回null,否则返回a if(a,b,c) a为true且≠0且不空,返回b is null(a) a为空返回ture
3数学函数 | | | 绝对值 ABS(x) select ABS(-2);→2 圆周率 Pi() select Pi;→3.141593 平方根 SQRT(X) select SQRT(9),(-49)→3,null 求余 MOD(X,Y) select MOD(31,8)(45.5,6)→7,3.5 取整 CEIL(X)、CEILING(X)、FLOOR(X) ① 随机 RAND()、RAND(X)(0≤v≤1.0) x产生重复序列② 四舍五入 ROUND(X)、ROUND(X,Y) TRUN(ATE(X,Y)③ 符号 SIGN(X) 负:-1,0:0,正:1 幂 POW(X,Y),POWER(X,Y),EXP(X) 对数 LOG(X),LOE10(X) 弧度 RADIANS(X),DEGREES(X) 三角 SIN(X),COS(X),TAN(X) ASIN(X),ACOS(X),ATAN(X)
①取整:
select CEIL(-3.35),CEILONG(3.35);
-3,4 返回不大于x的最小整数
select FLOOR(-3.35),FLOOR(3.35);
-4,3 返回不大于x的最大整数
②随机
select RAND(),RAND(10),RAND(10);
0.12754744……,0.657051……,0.657051……
③四舍五入
select ROUND(-1.14);-1最接近x的整数
select ROUND(1.38,.1),ROUND(1.38,0),ROUND(232.28,-1),ROUND(232.28,-2)
1.4,1,230,200
最接近x的数,y小数个数(y为负,小数点左边直接为0,不四舍五入)
select
select TRUNCATE(1.31,1),TRUNCATE(1.99,1),TRUNCATE(1.99,0),TRUNCATE(1.99,-1)
1.3,1.9,1,10
舍去至小数点y位的数字,y为0,不带小数,y为负,截取小数点左边y位
4字符串函数 | | | 长度 CHAR LENGTH(str) 合并 CONCAT(X,X1,X2)→XX1X2 CONCAT_WS(X,X1,X2)→X1XXX2 替换 INSERT(S1,X,len,s2) ① 大小写 LowER(str),LCASE(str)小 UPPER(str),UCASE(str) 指定长度 LEFT(S,N),RIGHT(S,N) 填充 LPAD(S1,len,S2)左填 RPAD(S,len,s2)右填 删除空格 LTRIM(S)删左,RTRIM(S)删右 TRIM(s)都删 删除指定字符 TRIM(S1 from s) s可以为空格 重复生成字符串 REPEAT(S,N) S:字符,N:重复次数 空格 SPACE(n) ② 替换 REPLACE(S,S1,S2) ③ 比较字符大小 STRCMP(S1,S2) S1>S2→1;S1 < S2→-1;S1=S2→0 子串 SUBSTRING(S,N,len)MID(S,N,len) 相同 len<1→null④ 子串位置 LOCATE(str1,str),POSITION(str in str) INSTR(str1,str2)三相同 逆序 REVERSE(S) 指定位置字符 ELT(N,字符1,字符n)ELT(2,’a’,’b’)b ELT(2,’a’,’b’)null 指定字符位置 FIELD(‘指定,’字符1’,’字符2’,’指定’); 3 子串位置 FIND_IN_SET(‘子串,’A,B,子串,d’); 3⑤ 选取字符串 MAKE_SET(X,S1,S2……) ⑥
①替换
s1始于x位置,len长度,替换成s2
x超出长度,返回原始字符
len长度小于s1,s2,从开始替换
参数一个为null,返回null
②空格
select CONCAT(‘(‘,SPACE(6),’)’)→( )
③替换
select REPLACE(‘xxx.mysql.com’,’x’,’w’);|www.mysql.com
④子串
s从n个数len长度
select SUBSIRING(‘breakfast’,5),SUBSIRING(‘lunch’,3),SUBSIRING(‘lunch’,-5,3);kfast,nch,lun
⑤子串位置
select INSTR(‘football’,’ball’);5
⑥选取字符串:查看字符集
show variables like ‘character_set_%’;
my.ini→dafault-character_set_gbk(character-set-seriver)
5日期时间 | | 当前日期 CURDATE()CURRENT_DATE()相同2011-07-24,CURDATE+0:20110724 当前时间 CURTIME(),CURRENT_TIME()相同;→10:21:34,CURTIME()+0:102134.000000 当前日期和时间 CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE(),2017-07-24 10:28:00 时间戳 UNIX_TIMESTAMP(),UNIX_TIMESTAMP(NOW())相同,FROM UNIXTIME(‘131147609’)→2011-07-24 10:54:51;FROM_UNIXTIME(DATE) DATE→格林标准时间 UTC日期 UIC_DATE()→2011-07-24 UTC_DATE+0→20110724 UTC时间 UIC_TIME()→03:11:29 UTC_DATE+0→031129.000000 月份 MONTH(DATE),MONTHNAME(DATE) DATE=2011-02-13→2和February 星期 DAYNAME(d),DAYOFWEEK(D)日:1,WEEKDAY(D)1:0,2:1,日:6 d=2011-02-13 星期数 WEEK(d),WEEKOFYEAR(d) 天数 DAYOFYEAR(d),DAYOFMONTH(d) 获取年份 YEAR(‘11-02-03’)→2011 获取季度 QUARTER(‘11-04-01’)→2,范围1-4 获取分钟 MINUTE(‘11-02-03 10:10:03’)→10,范围0~59 获取秒 AECOND(‘10:05:03’);→03 日期指定 YEAR FROM(‘2011-07-12’ 01:02:03)→2011 (EXTRACTC) YEAR_MONTH FROM(‘2011-07-12’ 01:02:03)→201107 YEAR_DAY FROM(‘2011-07-12’ 01:02:03)→120102 转为秒 TIME_TO_SEC(‘23:23:00’)→84180 h*3600+n*60+s 转为时间 SEC_TO_TIME(‘2345’)→00:39:05 加天 DATE_ADD(‘2010-12-31 23:59:59’,INTERVAL 1 SECOND)=ADDDATE() 减天 DATE_SUB(‘2010-12-31 23:59:59’,INTERVAL 31 DAY=SUBDATE() 加时间 ADDTIME(2010-12-31 23:59:59’,’1:1:1’) 减时间 SUBTIME(2010-12-31 23:59:59’,’1:1:1’) 差 DATEDIFF(date1,date2)date1-date2 获取年、月、日 dt=’2010-10-01 12:00:30’ LEFT(dt,4) MID(dt,6,2)
6条件判断函数 | | IF(1<2,’yes’,’no’);IF(STRCMP(‘TEST’,’TEST1’),’no’,’yes’) yes,no CASE 2 WHEN 1 THEN’one’ WHEN 2 THEN ‘two’ ELSE ‘more’ END two CASE WHEN 1<0 THEN’true’ ELSE’false’END false
7系统信息函数 | | 版本号 VERSION();5.5.13 服务器连接次数 CONNECTION_ID();3 用户连接信息 show PROCESSLIST; 数据库名 DATABASE(),SCHEMA() 用户名 USER(),CURRENT_USER(),SYSTEM_USER() 字符集 CHARSET(‘abc’);utf8 排序方式 COLLATION(str) 自动生成最后ID LIST_INSERT_ID() (一次插入一条) 最后一个 (一次插入多条) 插入之前最后一个id+1 加密函数 PASSWORD(str),MD5(str),ENCODE(str,pswd_str) 解密函数 DECODE(ENCODE(‘secret’,’cry’),’cry’→secret
8集合运算 | select * from 表 union select * from 表 | 交 union 并 interect 差 minusc