常见函数

一、单行函数
1、字符函数
    concat拼接
    substr截取子串 索引从1开始
    upper转换成大写
    lower转换成小写
    trim去前后指定的空格和字符 trim('a' from 'aaababbaaa') 输出babb
    ltrim去左边空格
    rtrim去右边空格
    replace替换
    lpad左填充
    rpad右填充
    instr返回子串第一次出现的索引
    length 获取字节个数
2、数学函数
    round 四舍五入
    rand 随机数
    floor向下取整
    ceil向上取整
    mod取余
    truncate截断
3、日期函数
    now()当前系统日期+时间
        year(now()) 截取年 month()
    curdate()当前系统日期
    curtime()当前系统时间
    str_to_date('时间','如何解析') 返回合规的时间
    date_format('时间','如何输出') 返回想要的时间
4、流程控制函数
    1. if(条件,true_ret,false_ret)
    2. case key
        when val then 处理
        when val then 处理
        ...
        else 处理
        end
        * key可以不写,有时val与key要合规,无时则val为条件
5、其他函数
    version版本
    database当前库
    user当前连接用户

二、分组函数
        sum 求和
        max 最大值
        min 最小值
        avg 平均值
        count 计数

        特点:
        1、以上五个分组函数都忽略null值,除了count(*)
        2、sum和avg一般用于处理数值型
            max、min、count可以处理任何数据类型
        3、都可以搭配distinct使用,用于统计去重后的结果
        4、count的参数可以支持:
            字段、*、常量值,一般放1,都是求表中有多少行
        建议使用 count(*),在MYISAM中,count(*)有缓存,效率高,INNODB中,count(*)和count(1)类似
        5、分组函数一般要求是group by后的字段,否则没有意义