1.截取函数:substring()
用法:SUBSTRING(str ,n ,m):返回字符串str从第n个字符截取到第m个字符;
2.拼接函数:concat()
用法:select concat(A,B) 或者select A || B
3.大写函数UPPER()
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
字符串匹配(近似查找法)
用like来查找
1 2 3 4 | select order_num, order_date from Orders where order_date like '2020-01%' order by order_date |
切割字符串
1 2 3 4 | select order_num, order_date from Orders where left(order_date, 7) = '2020-01' order by order_date |
字符串比较
1 2 3 4 | select * from Orders where order_date >= '2020-01-01 00:00:00' and order_date <= '2020-01-31 23:59:59' order by order_date; |
用正则来查找(效率不如like,能用like就用like)
1 2 3 4 | select order_num, order_date from Orders where order_date regexp '2020-01' order by order_date |
时间函数匹配
1 2 3 4 | select order_num, order_date from Orders where year(order_date) = '2020' and month(order_date) = '1' order by order_date |
利用date_format函数 (参考其中的匹配规则进行匹配)
1 2 3 4 | select order_num, order_date from Orders where date_format(order_date, '%Y-%m')='2020-01' order by order_date |
sum:求和
as:改别名
Aaaa AS BBBBB 将A改为B
HAVING
子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。
WHERE 搜索条件在进行分组操作之前应用;
而 HAVING 搜索条件在进行分组操作之后应用。
HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。
① 表名和字段名,即使是中文也不用加单引号;
② 对于表格内的value值,要不要加单引号取决于这个字段设置的数据类型。
1.sum函数是计算数字的求和,然而count是计算的这一列的总和
2.group by 和order by连用的时候要注意,order by要在后面
sql中关键字出现的顺序是:select/from/where/group by/having/order by/limit
1.sum函数是计算数字的求和,然而count是计算的这一列的总和
# 2.group by 和order by连用的时候要注意,order by要在后面
# sql中关键字出现的顺序是:select/from/where/group by/having/order by/limit
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
where用于聚合计算前的字段筛选,having用于聚合计算后的字段筛选,如果有计算字段过滤指标,则用having 不用 where order by order_num
where语句中不能过滤聚合函数,如sum、max、min…
having过滤分组
select是在group by和 having之后才执行的
- 最大值---max()
- 最小值---min()
- 平均值---avg()
- 总值 ---sum()
- 总数 ---count()