一、概述
好处:提供重用性和隐藏实现细节
调用:select 函数名(实参列表)
二、单行函数
函数名 | 作用 |
---|---|
concat | 连接 |
substr | 截取子串 |
upper | 变大写 |
lower | 变小写 |
replace | 替换 |
length | 获取字节长度 |
trim | 去前后空格 |
lpad | 左填充 |
rpad | 右填充 |
instr | 获取子串第一次出现的索引 |
2、数学函数
函数名 | 作用 |
---|---|
ceil | 向上取整 |
floor | 向下取整 |
round | 四舍五入 |
mod | 取模 |
truncate | 截断 |
rand | 获取随机数,返回0-1之间的小数 |
3、常用日期函数
函数名 | 作用 |
---|---|
now | 返回当前日期+时间 |
year | 返回年 |
month | 返回月 |
day | 返回日 |
date_format | 将日期转换成字符 |
curdate | 返回当前日期 |
str_to_date | 将字符转换成日期 |
curtime | 返回当前时间 |
datediff | 返回两个日期相差的天数 |
monthname | 以英文形式返回月 |
4、其他函数
函数名 | 作用 |
---|---|
version | 当前数据库服务器的版本 |
database | 当前打开的数据库 |
user | 当前用户 |
password(‘字符’) | 返回该字符的密码形式 |
md5(‘字符’) | 返回该字符的md5加密形式 |
5、流程控制函数
①if函数
如果条件表达式成立,返回表达式1,否则返回表达式2
if(条件表达式,表达式1,表达式2)
②case语句
情况1
case 变量或表达式或字段
when 常量1 then 值1
when 常量2 then 值2
...
else 值n
end
情况2
case
when 条件1 then 值1
when 条件2 then 值2
...
else 值n
end
三、分组函数
分类
函数名 | 作用 |
---|---|
max | 返回最大值 |
min | 返回最小值 |
sum | 求和 |
avg | 返回平均值 |
count | 计算个数 |
特点
①语法
select 函数名(字段) from 表名;
②支持的类型
sum和avg一般用于处理数值型
max、min、count可以处理任何数据类型
③以上分组函数都忽略null
④都可以搭配distinct使用,实现去重的统计
select sum(distinct 字段) from 表;
⑤count函数
count(字段):统计该字段非空值的个数
count(*):统计结果集的行数
count(1):统计结果集的行数
效率上:
MyISAM存储引擎,count(*)最高
InnoDB存储引擎,count(*)和count(1)效率>count(字段)
⑥和分组函数一同查询的字段,要求是group by 后出现的字段