MySql常用函数总结
2017-10-10 21:22
375 查看
数学函数
ABS
BIN
CEILING
EXP
FLOOR
GREATEST
LEAST
LN
LOG
MOD
PI
RAND
ROUND
SIGN
SQRT
TRUNCATE
聚合函数
AVG
COUNT
MIN
MAX
SUM
GROUP_CONCATcol
字符串函数
ASCII
BIT_LENGTH
CONCAT
CONCAT_WS
INSERT
FIND_IN_SET
LCASE或LOWER
LEFT
LENGTH
LTRIM
POSITION
QUOTE
REPEAT
REVERSE
RIGHT
RTRIM
STRCMP
TRIM
UCASE或UPPER
日期函数
CURDATE或CURRENT_DATE
CURTIME或CURRENT_TIME
DATE_ADDdateINTERVAL int keyword
DATE_FORMAT
DATE_SUB
DAYOFWEEK
DAYOFMONTH
DAYOFYEAR
DAYNAME
FROM_UNIXTIME
HOUR
MINUTE
MONTH
MONTHNAMEdate
NOW
QUARTERdate
WEEKdate
YEARdate
控制流函数
IFtesttf
IFNULLarg1arg2
NULLIFarg1arg2
case when then
on duplicate key update 的用法
4000
在INSERT INTO…..后面加上 ON DUPLICATE KEY UPDATE的方法。
如果您指定了ON DUPLICATE KEY UPDATE,
并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。
(若插入的字段中有符合上述索引的字段,并且插入对应字段值中已经存在该数据,则新增变为update,update 后面拼接的操作。)
可以用来做多条记录更新语句,以及简单的统计。
values后接多条对应行值可以实现批量增加或者批量更改;
INSERT INTO 表名 (字段名) values (字段值),(字段值)…
ON DUPLICATE KEY UPDATE 字段名 = values(字段名) 【这样可以引用自己的插入值】
(若在遇到已有数据时并不想作任何改动,可以 【字段名 = 字段名】 )
例子:
ABS
BIN
CEILING
EXP
FLOOR
GREATEST
LEAST
LN
LOG
MOD
PI
RAND
ROUND
SIGN
SQRT
TRUNCATE
聚合函数
AVG
COUNT
MIN
MAX
SUM
GROUP_CONCATcol
字符串函数
ASCII
BIT_LENGTH
CONCAT
CONCAT_WS
INSERT
FIND_IN_SET
LCASE或LOWER
LEFT
LENGTH
LTRIM
POSITION
QUOTE
REPEAT
REVERSE
RIGHT
RTRIM
STRCMP
TRIM
UCASE或UPPER
日期函数
CURDATE或CURRENT_DATE
CURTIME或CURRENT_TIME
DATE_ADDdateINTERVAL int keyword
DATE_FORMAT
DATE_SUB
DAYOFWEEK
DAYOFMONTH
DAYOFYEAR
DAYNAME
FROM_UNIXTIME
HOUR
MINUTE
MONTH
MONTHNAMEdate
NOW
QUARTERdate
WEEKdate
YEARdate
控制流函数
IFtesttf
IFNULLarg1arg2
NULLIFarg1arg2
case when then
on duplicate key update 的用法
数学函数
ABS
ABS(x):返回x的绝对值BIN
BIN(x) :返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING
CEILING(x) :返回大于x的最小整数值EXP
EXP(x):返回值e(自然对数的底)的x次方FLOOR
FLOOR(x):返回小于x的最大整数值GREATEST
GREATEST(x1,x2,…,xn):返回集合中最大的值LEAST
LEAST(x1,x2,…,xn) : 返回集合中最小的值LN
LN(x):返回x的自然对数LOG
LOG(x,y):返回x的以y为底的对数MOD
MOD(x,y):返回x/y的模(余数)PI
PI():返回pi的值(圆周率)RAND
RAND():返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值。ROUND
ROUND(x,y):返回参数x的四舍五入的有y位小数的值SIGN
SIGN(x) :返回代表数字x的符号的值SQRT
SORT(x):返回一个数的平方根TRUNCATE
TRUNCATE(x,y): 返回数字x截短为y位小数的结果聚合函数
对一组值进行计算,并返回单个值AVG
AVG(col):返回指定列的平均值COUNT
COUNT(col):返回指定列中非NULL值的个数MIN
MIN(col):返回指定列的最小值MAX
MAX(col):返回指定列的最大值SUM
SUM(col):返回指定列的所有值之和select sum(counts) from test order by time
GROUP_CONCAT(col)
返回由属于一组的列值连接组合而成的结果字符串函数
ASCII
ASCII(char)返回字符的ASCII码值BIT_LENGTH
BIT_LENGTH(str):返回字符串的比特长度CONCAT
CONCAT(s1,s2…,sn):将s1,s2…,sn连接成字符串CONCAT_WS
CONCAT_WS(sep,s1,s2…,sn):将s1,s2…,sn连接成字符串,并用sep字符间隔INSERT
INSERT(str,x,y,instr) :将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果FIND_IN_SET
FIND_IN_SET(str,list):分析逗号分隔的list列表,如果发现str,返回str在list中的位置LCASE或LOWER
LCASE(str)或LOWER(str) 返回将字符串str中所有字符改变为小写后的结果LEFT
LEFT(str,x)返回字符串str中最左边的x个字符LENGTH
LENGTH(s)返回字符串str中的字符数LTRIM
LTRIM(str) 从字符串str中切掉开头的空格POSITION
POSITION(substr,str) 返回子串substr在字符串str中第一次出现的位置QUOTE
QUOTE(str) 用反斜杠转义str中的单引号REPEAT
REPEAT(str,srchstr,rplcstr)返回字符串str重复x次的结果REVERSE
REVERSE(str) 返回颠倒字符串str的结果RIGHT
RIGHT(str,x) 返回字符串str中最右边的x个字符RTRIM
RTRIM(str) 返回字符串str尾部的空格STRCMP
STRCMP(s1,s2)比较字符串s1和s2TRIM
TRIM(str)去除字符串首部和尾部的所有空格UCASE或UPPER
UCASE(str)或UPPER(str) 返回将字符串str中所有字符转变为大写后的结果日期函数
CURDATE()或CURRENT_DATE()
返回当前的日期CURTIME()或CURRENT_TIME()
返回当前的时间DATE_ADD(date,INTERVAL int keyword)
返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);DATE_FORMAT
DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值DATE_SUB
DATE_SUB(date,INTERVAL int keyword)返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);DAYOFWEEK
DAYOFWEEK(date) 返回date所代表的一星期中的第几天(1~7)DAYOFMONTH
DAYOFMONTH(date) 返回date是一个月的第几天(1~31)DAYOFYEAR
DAYOFYEAR(date) 返回date是一年的第几天(1~366)DAYNAME
DAYNAME(date) 返回date的星期名,如:SELECT DAYNAME(CURRENT_DATE);FROM_UNIXTIME
FROM_UNIXTIME(ts,fmt) 根据指定的fmt格式,格式化UNIX时间戳tsHOUR
HOUR(time) 返回time的小时值(0~23)MINUTE
MINUTE(time)返回time的分钟值(0~59)4000
MONTH
MONTH(date) 返回date的月份值(1~12)//去表字段的time字段(time为时间字段),取其中的月份来进行排序 select * from test group by month(time)
MONTHNAME(date)
返回date的月份名,如:SELECT MONTHNAME(CURRENT_DATE);NOW()
返回当前的日期和时间QUARTER(date)
返回date在一年中的季度(1~4),如SELECT QUARTER(CURRENT_DATE);WEEK(date)
返回日期date为一年中第几周(0~53)YEAR(date)
返回日期date的年份(1000~9999)控制流函数
IF(test,t,f)
如果test是真,返回t;否则返回fIFNULL(arg1,arg2)
如果arg1不是空,返回arg1,否则返回arg2NULLIF(arg1,arg2)
如果arg1=arg2返回NULL;否则返回arg1case when then
CASE [expression to be evaluated] WHEN [val 1] THEN [result 1] WHEN [val 2] THEN [result 2] WHEN [val 3] THEN [result 3] ...... WHEN [val n] THEN [result n] ELSE [default result] END
on duplicate key update 的用法
引用(在批量更新中,用多条update更新每一条记录容易造成阻塞的问题)在INSERT INTO…..后面加上 ON DUPLICATE KEY UPDATE的方法。
如果您指定了ON DUPLICATE KEY UPDATE,
并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。
(若插入的字段中有符合上述索引的字段,并且插入对应字段值中已经存在该数据,则新增变为update,update 后面拼接的操作。)
可以用来做多条记录更新语句,以及简单的统计。
values后接多条对应行值可以实现批量增加或者批量更改;
INSERT INTO 表名 (字段名) values (字段值),(字段值)…
ON DUPLICATE KEY UPDATE 字段名 = values(字段名) 【这样可以引用自己的插入值】
(若在遇到已有数据时并不想作任何改动,可以 【字段名 = 字段名】 )
例子:
//假设id为唯一主键或这唯一索引 //value()里面的是新插入的 =左边的是原来的数据 insert into test(id,num)values(1,2),(2,3)on duplicate key update num=num+value(num)
相关文章推荐
- PHP中的MYSQL常用函数总结
- PHP中的MYSQL常用函数总结
- Mysql常用函数总结(二)
- Mysql总结3-mysql常用函数
- MySQL常用函数总结
- PHP中的MYSQL常用函数总结
- PHP中的MYSQL常用函数总结
- MySQL常用函数(总结)
- SQL注入总结大全
- 总结MYSQL的优化
- 算法的时间复杂度和空间复杂度-总结
- 通过PS制作手机图标心得总结
- java笔记总结_05_常用类
- 安卓Theme颜色配置总结
- 心得总结
- SPI的一些总结
- Nodeparty-SZ-1 深圳聚会活动回顾总结[2012.01.08] - CNode
- 冒泡,插入,折半插入,希尔,快速,简单选择排序的源代码总结
- 软工词频统计总结<原来文章是看不到的,随笔才行>
- GridView总结