一、概述 功能:类似于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后出现的字段