函数

调用:SELECT 函数名(实参列表)

单行函数

  1. 字符函数
    concat() 连接
    substr() 截取子串
    upper() 变大写
    lower() 变小写
    repalce() 替换
    length() 获取字节长度
    trim('a' from 'aa前后的a都会去掉aa') 去前后
    lpad(str,len,str) 左填充
    rpad(str,len,str) 右填充
    instr(str,str) 获取子串第一次出现的索引
  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() 当前数据库服务器的版本
    datebase() 当前打开的数据库
    user() 当前用户
    password('字符') 返回该字符的密码形式 mysql8.0版本中已删除
    md5()
  5. 流程控制函数
    // 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后出现的字段