【一文看懂SQL系列】您会用到的常见函数,分组查询都在这里了

一、常见函数

  1. 单行函数
    字符函数,数学函数,日期函数,控制函数
    CONCAT, LENGTH, IFNULL

  2. 分组函数
    SUM, AVG, MAX, MIN, COUNT
    COUNT(*) 统计行数

单行函数
字符函数
  1. LENGTH 获取字符串的字节长度
  2. CONCAT 拼接字符串
  3. UPPER, LOWER
  4. SUBSTR(字符串, 开始,长度) 索引从1开始
  5. INSTR 返回子串第一次出现的索引,找不到返回0
  6. TRIM(字符串1 from 字符串2)
    删除字符串2左右两边的字符串1
  7. LPAD 用指定的字符串实现左填充指定字符
  8. RPAD
  9. REPLACE(字符串, 字符串1,字符串2) 替换
数字函数
  1. ROUND 四舍五入
  2. CEIL 向上取整
  3. FLOOR 向下取整
  4. TRUNCATE 截断
  5. MOD 取余
日期函数
  1. NOW() 返回当前系统日期+时间

  2. CURDATE() 返回当前系统日期,不包含时间

  3. CURTIME() 返回当前时间,不包含日期

  4. 可以获取当前的年、月、日、小时、分钟、秒 MONTH(NOW())

  5. STR_TO_DATE(’9-13-2019‘,’%m-%d-%y‘)将日期格式的字符按转换为指定格式的日期

  6. DATE_FORMAT(’2018/06/07‘,’%Y年%m月%d日‘):将日期转换为字符

流程控制函数
  1. if语句:
    IF(条件判断,为真则,为假则)
  2. case语句:
    类似于switch
case 要判断的字段或表达式
when 常量1 then 要显示的值1或语句1when 常量2 then 要显示的值2或语句2;
...
else 要显示的值n或语句n;
end

类似于多重if

case 
when 条件1 then 要显示的值1或语句1
when 条件2 then 要显示的值2或语句2
...
else 要显示的值n或语句n
end
分组函数
 SUM, AVG, MAX, MIN, COUNT

特点:

  1. SUM, AVG 只能处理数值型MAX, MIN,COUNT可以处理任何类型
  2. 以上分组函数都可以忽略NULL值
  3. 可以和DISTINCT搭配实现去重
  4. COUNT(*) 统计行数,COUNT(1)也可以统计行数
    MYISAM 存储引擎下,COUNT(*)效率高
    INNODB 存储引擎下,COUNT(*)COUNT(1)效率差不多,比COUNT(字段)效率高

二、分组查询

语法: SELECT 字段名 FROM 表名 【WHERE 筛选条件】GROUP BY 分组列表 【HAVING 筛选条件】ORDER BY 子句

注意: 查询列表必须特殊,要求是分组函数和 GROUP BY 后出现的字段; GROUP BY支持单个字段或多个字段

  1. 分组前筛选 WHERE

  2. 分组后筛选 HAVING

发布了21 篇原创文章 · 获赞 17 · 访问量 3697

猜你喜欢

转载自blog.csdn.net/qq_33892106/article/details/105145235