十函数
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 |