---------------------------------------------常用函数----------------------------------
以下所示列的数据库表
聚合函数
函数名 | 作用 |
---|---|
AVG() | 返回某字段的平均值 |
COUNT() | 返回某字段的行数 |
MAX() | 返回某字段的最大值 |
MIN() | 返回某字段的最小值 |
SUM() | 返回某字段的和 |
字符串函数
函 数 名 | 作 用 | 举 例 |
---|---|---|
CONCAT(str1, str1…strn) | 字符串连接 | CONCAT(‘My’,‘S’,‘QL’);返回:MySQL |
INSERT(str,pos,len,newstr) | 字符串替换 | SELECT INSERT ‘这是SQL Server数据库’, 3,10,‘MySQL’);返回:这是MySQL数据库 |
LOWER(str) | 将字符串转为小写 | SELECT LOWER(‘MySQL’);返回:mysql |
UPPER(str) | 将字符串转为大写 | SELECT UPPER(‘MySQL’);返回:MYSQL |
SUBSTRING (str,num,len) | 字符串截取 | SELECT SUBSTRING( ‘JavaMySQLOracle’,5,5);返回:MySQL |
一些字符串函数示列
1).计算字符串长度
例子:select Name,length(Name) from person;
2).转换为小写
例子:select Name,lower(Name) from person;
3).转换为大写
例子:select Name,upper(Name) from person;
4).截去字符串左侧空格
例子:select Name,ltrim(Name),ltrim(' abc ') from person;
5).截去字符串左侧空格
例子:select Name,rtrim(Name),rtrim(' abc ') from person;
6).截去字符串两侧空格
例子:select Name,trim(Name),trim(' abc ') from person;
7).取子字符串
第二个参数是截取的起始位置,第三个参数是长度
例子:select substring('abcdef111',2,3);
select Name,substring(Name,2,3) from person;
8).计算子串的位置
例子:select Name,instr(Name,'m'),instr(Name,'ly') from person;
9).从左侧开始取字串
例子:select Name,left(Name,3),left(Name,2) from person;
10).从右侧开始取字串
例子:select Name,right(Name,3),right(Name,2) from person;
11).字符串替换
第一个参数是字符串,第二个是要被替换的子串,第三个是想要替换的子串.
这个函数第三个参数如果为空串的话相当于删除操作了.
例子:select Name,replace(Name,'i','e'),IDNumber,
replace(IDNumber,'2345','abcd') from person;
时间日期函数
函数名 | 作用 | 举例 |
---|---|---|
CURDATE() | 获取当前日期 | SELECT CURDATE();返回:2016-08-08 |
CURTIME() | 获取当前时间 | SELECT CURTIME();返回:19:19:26 |
NOW() | 获取当前日期和时间 | SELECT NOW();返回:2016-08-08 19:19:26 |
WEEK(date) | 返回日期date为一年中的第几周 | SELECT WEEK(NOW());返回:26 |
YEAR(date) | 返回日期date的年份 | SELECT YEAR(NOW());返回:2016 |
HOUR(time) | 返回时间time的小时值 | SELECT HOUR(NOW());返回:9 |
MINUTE(time) | 返回时间time的分钟值 | SELECT MINUTE(NOW());返回:43 |
DATEDIFF(date1,date2) | 返回日期参数date1和date2之间相隔的天数 | SELECT DATEDIFF(NOW(), ‘2008-8-8’);返回:2881 |
ADDDATE(date,n) | 计算日期参数date加上n天后的日期 | SELECT ADDDATE(NOW(),5);返回:2016-09-02 09:37:07 |
一些日期函数示列
1).获取当前日期时间
例子:select now(),sysdate(),current_timestamp;
2).获取当前日期
例子:select curdate(),current_date;
3).获取当前时间
例子:select curtime(),current_time;
4).日期增减
函数:date_add(date,interval expr type);它的别名是adddate()
例子:select BirthDay,date_add(BirthDay,interval 1
week) as w1,date_add(BirthDay,interval 2 month) as m2,
date_add(BirthDay,interval 5 quarter) as q5 from person;
select BirthDay,date_add(BirthDay,interval '3 2:10' DAY_MINUTE) as
dm,date_add(BirthDay,interval 1-6 YEAR_MONTH) as ym from person;
5).计算日期差
例子:select RegDay,BirthDay,datediff(RegDay,BirthDay),
datediff(BirthDay,RegDay) from person;
6).计算一个日期是星期几
例子:select BirthDay,dayname(BirthDay),RegDay,dayname(RegDay) from person;
7).取得日期的指定部分
函数:date_format(date,format);
例子:select BirthDay,date_format(BirthDay,'%y-%M %D %W') as
bd,RegDay,date_format(RegDay,'%Y年%m月%e日')
as rd from person;
数学函数
函数名 | 作 用 | 举 例 |
---|---|---|
CEIL(x) | 返回大于或等于数值x的最小整数 | SELECT CEIL(2.3)返回:3 |
FLOOR(x) | 返回小于或等于数值x的最大整数 | SELECT FLOOR(2.3)返回:2 |
RAND() | 返回0~1间的随机数 | SELECT RAND()返回:0.5525468583708134 |
一些数学函数示列:
1).求绝对值
例子:select Weight-50,abs(Weight-50),abs(-5.38) from person;
2).求指数
例子:select Weight,power(Weight,-0.5),power(Weight,2),
power(Weight,3),power(Weight,4) from person;
3).求平方根
例子:select Weight,sqrt(Weight) from person;
4).求随机数
例子:select rand();
5).舍入到最大整数
例子:select Name,Weight,ceiling(Weight),ceiling(Weight*-1) from person;
6).舍入到最小整数
例子:select Name,Weight,floor(Weight),floor(Weight*-1) from person;
7).四舍五入
round()函数的用法:两个参数的和一个参数的
两个参数:round(m,d),m为待进行四舍五入的数值,而d则为计算精度.d还可以取负值.
例子:select Name,Weight,round(Weight,1),
round(Weight*-1,0),round(Weight,-1) from person;
一个参数:round(m),相当于d=0
例子:select Name,Weight,round(Weight),round(Weight*-1) from person;
8).求正弦值
例子:select Name,Weight,sin(Weight) from person;
9).求余弦值
例子:select Name,Weight,cos(Weight) from person;
10).求反正弦值
例子:select Name,Weight,asin(1/Weight) from person;
11).求反余弦值
例子:select Name,Weight,acos(1/Weight) from person;
12).求正切值
例子:select Name,Weight,tan(Weight) from person;
13).求反正切值
例子:select Name,Weight,atan(Weight) from person;
14).求X/Y的反正切值
例子:select Name,Weight,atan2(Weight,2) from person;
15).求余切
例子:select Name,Weight,cot(Weight) from person;
16).求圆周率pi
例子:select Name,Weight,Weight*pi(),pi() from person;
17).求整除余数
例子:select Name,Weight,mod(Weight,5) from person;
18).求自然对数
例子:select Name,Weight,log(Weight) from person;