函数
调用:SELECT 函数名(实参列表)
单行函数
- 字符函数
concat() 连接 substr() 截取子串 upper() 变大写 lower() 变小写 repalce() 替换 length() 获取字节长度 trim('a' from 'aa前后的a都会去掉aa') 去前后 lpad(str,len,str) 左填充 rpad(str,len,str) 右填充 instr(str,str) 获取子串第一次出现的索引
- 数学函数
ceil() 向上取整 round() 四舍五入 mod() 取模 floor() 向下取整 truncate() 截断 rand() 获取随机数,返回[0,1)之间的小数
- 日期函数
now() 返回当前日期+时间 year() 返回年 month() 返回月 day() 返回日 date_format() 将日期转换成字符 curdate() 返回当前日期 str_to_date() 将字符转换成日期 curtime() 返回当前时间 hour() 小时 minute() 分钟 second() 秒 datediff() 返回两个日期相差的天数 monthname() 以英文形式返回月
- 其他函数
version() 当前数据库服务器的版本 datebase() 当前打开的数据库 user() 当前用户 password('字符') 返回该字符的密码形式 mysql8.0版本中已删除 md5()
- 流程控制函数
// if if (条件表达式, 表达式1, 表达式2): 如果条件表达式成立,返回表达式1,否则返回表达式2 // case case 变量 或 表达式 或 字段 when 常量1 then 值1 when 常量2 then 值2 ... else 值n end
分组函数
max() 最大值 min() 最小值 sum() 和 avg() 平均值 count() 计算个数
注意点:
① 语法
select max(字段) from 表名
② 支持的类型
sum和avg用于处理数值型
max、min、count可以处理任何数据类型
③ 以上分组函数都忽略null
④ 都可以搭配distinct使用,实现去重的统计
select count(distinct 字段) from 表名
⑤ count函数
count(字段) 统计该字段非null值的个数
count(*) 统计结果集的行数
count(1) 统计结果集的行数
⑥ 和分组函数一同查询的字段,要求是group by后出现的字段