【数据库】4函数

十函数

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)→XX1X2CONCAT_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’)bELT(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’ ENDtwo
CASE WHEN 1<0 THEN’true’ ELSE’false’ENDfalse

7系统信息函数
版本号VERSION();5.5.13
服务器连接次数CONNECTION_ID();3
用户连接信息show PROCESSLIST;
数据库名DATABASE(),SCHEMA()
用户名USER(),CURRENT_USER(),SYSTEM_USER()
字符集CHARSET(‘abc’);utf8
排序方式COLLATION(str)
自动生成最后IDLIST_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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值