Mysql中的几种类型的常用函数

一. 字符串函数

#CHAR_LENGTH(s)返回字符串s的字符数

SELECT CHAR_LENGTH('你好123');

#5

#LENGTH(s)返回字符串s的长度,和字符集有关

SELECT LENGTH('你好123');

#CONCAT(s1,s2,...)将字符串s1,s2等多个字符串合并为一个字符串

SELECT CONCAT('12','34');

#1234

#CONCAT_WS(x,s1,s2,...)CONCAT(s1,s2,...)函数,但是每个字符串之间要加上x

SELECT CONCAT_WS('@','12','34');

#12@34

#INSERT(s1,x,len,s2)将字符串s2替换s1x位置开始长度为len的字符串

SELECT INSERT('12345',1,3,'abc');

#abc45

#UPPER(s),UCAASE(S)将字符串s的所有字母变成大写字母

SELECT UPPER('abc');

#ABC

#LOWER(s),LCASE(s) 将字符串s的所有字母变成小写字母

SELECT LOWER('ABC');

#abc

#LEFT(s,n)返回字符串s的前n个字符

SELECT LEFT('abcde',2);

#ab

#RIGHT(s,n)返回字符串s的后n个字符

SELECT RIGHT('abcde',2);

#de

#LPAD(s1,len,s2)字符串s2来填充s1的开始处,使字符串长度达到len

SELECT LPAD('abc',5,'xx');

#xxabc

#RPAD(s1,len,s2)字符串s2来填充s1的结尾处,使字符串的长度达到len

SELECT RPAD('abc',5,'xx');

#abcxx

#LTRIM(s)去掉字符串s开始处的空格

#RTRIM(s)去掉字符串s结尾处的空格

#TRIM(s)去掉字符串s开始和结尾处的空格

#TRIM(s1 FROM s)去掉字符串s中开始处和结尾处的字符串s1

SELECT TRIM('@' FROM '@@abc@@');

#abc

#REPLACE(s,s1,s2)将字符串s2替代字符串s中的字符串s1

SELECT REPLACE('abc','a','x');

#xbc

#substring(str, pos)被截取字段,从第几位开始截取

SELECT SUBSTRING('我和我的祖国,一刻也不能分割.',5);

#祖国,一刻也不能分割.

#SUBSTRING(s,n,len)获取从字符串s中的第n个位置开始长度为len的字符串

SELECT SUBSTRING('helloworld',6,5);

#world

#substring_index(str,delim,count) 被截取字段,关键字,关键字出现的次数)

SELECT SUBSTRING_INDEX("blog.jb51.net",".",2)

#blog.jb51

#locate(str,string);查询string是否包含str,存在返回str出现的位置,不存在返回0

SELECT LOCATE('_','user_name');

#5


 

二. 数学函数

#MOD(x,y)返回x除以y以后的余数

SELECT MOD(5,2);

#1

#SQRT(x)返回x的平方根

SELECT SQRT(25);

#5

#POW(x,y).POWER(x,y)返回x的y次方

SELECT POW(2,3);

#8

#TRUNCATE(x,y)返回数值x保留到小数点后y位的值,y位之后之间舍去

SELECT TRUNCATE(1.23456,3);

#1.234

#ROUND(x,y)保留x小数点后y位的值,但截断时要进行四舍五入

SELECT ROUND(1.23456,3);

#1.235

#CEIL(x),CEILING(x)返回大于或等于x的最小整数

SELECT CEIL(1.5);

#2

#FLOOR(x)返回小于或等于x的最大整数

SELECT FLOOR(1.5);

#1

 

三.时间日期函数

#CURDATE(),CURRENT_DATE()返回当前日期

SELECT CURDATE()

update mytable set last_modify_date = CURDATE() where username = 'chai';

insert into mytable (username,hiredate)values('chai',CURDATE());

#CURTIME(),CURRENT_TIME返回当前时间

SELECT CURTIME();

#NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP()返回当前日期和时间

SELECT NOW();

#MONTH(d)返回日期d中的月份值,1->12

SELECT MONTH('2011-11-11 11:11:11');

#MONTHNAME(d) 返回日期当中的月份名称,如Janyary

SELECT MONTHNAME('2011-11-11 11:11:11')

#November

#DAYOFWEEK(d)日期d今天是星期几,1星期日,2星期一

SELECT DAYOFWEEK('2011-11-11 11:11:11')

#6

#DAYNAME(d)返回日期d是星期几,如Monday,Tuesday

SELECT DAYNAME('2011-11-11 11:11:11')

#Friday

CURRENT_TIMESTAMP()时间戳


四. 分组函数

分组函数作用于一组数据,并对一组数据返回一个值。

     可以对数值型数据使用AVG SUM 函数。

     可以对任意数据类型的数据使用MIN和MAX函数。

     COUNT(*)返回表中记录总数,适用于任意数据类型

     COUNT(expr) 返回expr不为空的记录总数

    可以使用GROUP BY子句将表中的数据分成若干组

    在SELECT列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中。

包含在GROUP BY子句中的列不必包含在SELECT列表中

    不能在 WHERE 子句中使用组函数。可以在 HAVING 子句中使用组函数。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值