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

京公网安备 11010502036488号