一.函数
函数
:
类似于
java
中的方法,将一组逻辑语句事先在数据库中定义好
,
可以直接调
用
分类:
单行函数:如
concat
、
length
、
ifnull
等
分组函数:做统计使用,又称为统计函数、聚合函数、组函数
1.单行函数
1.1字符函数
length()
:获取参数值的字节个数
SELECT 名字,LENGTH(名字)FROM 球员信息表
char_length()
获取参数值的字符个数
SELECT 名字,char_LENGTH(名字)FROM 球员信息表
concat(str1,str2,.....)
:拼接字符串
SELECT 编号,CONCAT(名字,':',位置) FROM 球员信息表
upper()/lower()
:将字符串变成大写
/
小写
SELECT upper(名字),lower(名字)FROM 球员信息表
substring(str,pos,length)
:截取字符串 位置从
1
开始
SELECT SUBSTR(名字,2,4)FROM 球员信息表
instr(str,
指定字符
)
:返回子串第一次出现的索引,如果找不到返回
0
SELECT INSTR(名字,'特')FROM 球员信息表
trim(str)
:去掉字符串前后的空格或子串
,trim(
指定子串
from
字符串
)
SELECT TRIM(名字)FROM 球员信息表
lpad(str,length,
填充字符
)
:用指定的字符实现左填充将
str
填充为指定长度
SELECT lpad(名字,10,'s')FROM 球员信息表
rpad(str,length,
填充字符
)
:用指定的字符实现右填充将
str
填充为指定长度
SELECT rpad(名字,10,'s')FROM 球员信息表
replace(str,old,new)
:替换,替换所有的子串
SELECT REPLACE(名字,'特','t')FROM 球员信息表
1.2数学函数
round(
数值
)
:四舍五入
SELECT 名字,ROUND(身高)FROM 球员信息表
ceil(
数值
)
:向上取整,返回
>=
该参数的最小整数
SELECT 名字,ceil(身高)FROM 球员信息表
floor(
数值
)
:向下取整,返回
<=
该参数的最大整数
SELECT 名字,floor(身高)FROM 球员信息表
truncate(
数值
,
保留小数的位数
)
:截断,小数点后截断到几位
SELECT 名字,TRUNCATE(身高,1)FROM 球员信息表
mod(
被除数
,
除数
)
:取余,被除数为正,则为正;被除数为负,则为负
SELECT 名字,MOD(编号,3)FROM 球员信息表
rand()
:获取随机数,返回
0-1
之间的小数
SELECT 名字,rand()FROM 球员信息表
1.3日期函数
now()
:返回当前系统日期
+
时间
SELECT 名字,now()FROM 球员信息表
curdate()
:返回当前系统日期,不包含时间
SELECT 名字,curdate()FROM 球员信息表
curtime()
:返回当前时间,不包含日期
SELECT 名字,curtime()FROM 球员信息表
可以获取指定的部分,年、月、日、小时、分钟、秒
YEAR(
日期列
),MONTH(
日期
列
),DAY(
日期
列
) ,HOUR(
日期
列
) ,MINUTE(
日期
列
)
SECOND(
日期
列
)
SELECT 名字,year(生日),month(生日),day(生日)FROM 球员信息表
str_to_date(
字符串格式日期
,
格式
)
:将日期格式的字符转换成指定格式的日期
SELECT STR_TO_DATE('2001-2-7','%Y-%m-%d')FROM 球员信息表
date_format(
日期列
,
格式
)
:将日期转换成字符串
SELECT DATE_FORMAT(生日,'%Y-%m')FROM 球员信息表
datediff(big,small)
:返回两个日期相差的天数
SELECT 名字,DATEDIFF(now(),生日)FROM 球员信息表
*日期格式
%Y |
年,
4
位
|
%m |
月,数值
(00-12)
|
%d |
月的天,数值
(00-31)
|
%H |
小时
(00-23)
|
%i |
分钟,数值
(00-59)
|
%s |
秒
(00-59)
|
%f |
微秒
|
%T |
时间
, 24-
小时
(hh:mm:ss)
|
%j |
年的天
(001-366)
|
%w |
周的天 (
0=
星期日
, 6=
星期六)
|
2.分组函数
功能:用作统计使用,又称为聚合函数或统计函数或组函数
分类:
sum
求和、
avg
平均值、
max
最大值、
min
最小值、
count
计数
(非空)
1.sum
,
avg
一般用于处理数值型
max
,
min
,
count
可以处理任何类型
2.
以上分组函数都忽略
null
值
3.count
函数的一般使用
count
(
*
)用作统计行数
4.
和分组函数一同查询的字段要求是
group by
后的字段
SELECT SUM(身高),AVG(身高),MAX(身高),MIN(身高)FROM 球员信息表
SELECT count(*)FROM 球员信息表