2024-08-13软测学习今日总结
小记
续上昨天的内容,在group by 分组查询的基础上学习聚合函数等相关知识
一、聚合函数
- 计算函数 count()
语法:count(字段)
定义:统计表中某个字段对应的记录数(条数) - 求和函数 sum()
语法:sum(字段)
定义:统计表中某个字段对应的总和 - 平均值函数 avg()
语法:avg(字段)
定义:统计表中某个字段对应的平均值 - 最大值函数 max()
语法:max(字段)
定义:统计表中某个字段对应的最大值 - 最小值函数 min()
语法:min(字段)
定义:统计表中某个字段对应的最小值 - 分组拼接 group_concat()
语法:group_concat(字段1[,字段2,字段3…])
定义:将表中某个字段的所有值拼接到同一个结果中返回,默认值与值之间用逗号分隔
例如:select sex,group_concat(ename,sex) from emp;
二、having 分组之后再次限定
语法:select 查询内容 from 表名 where 分组前限定条件 group by 分组条件1,分组条件2... having 分组后限定条件 order by 排序条件1 排序方式,排序条件2 排序方式,...;
定义:在 SQL 中,HAVING 子句主要用于与 GROUP BY 子句结合使用,以指定过滤条件来限制哪些分组(group)应该被包含在最终的查询结果中。
where 和having 的区别:
(1)where 是在分组前进行的限定,having是在分组之后再次进行限定
(2)where后面不能跟聚合函数,having后面可以跟字段起的别名
(3)where后面不可以跟给字段起的别名,having后面可以跟给字段起的别名
(4)一般情况下,如果需要对聚合函数求出来的数据再次进行限定筛选的话。就会用到having,否则其他的筛选一般都是用where
(5)一般情况下,having都是和group by配合使用的
三、limit 限定返回数据条数
语法:select 查询内容 from 表名 where 分组前限定条件 group by 分组条件1,分组条件2... having 分组后限定条件 order by 排序条件1 排序方式,排序条件2 排序方式,... limit 偏移量,返回数量;
还有一种写法为:limit 返回数量 offset 从头开始跳过的数量;
例如:select * from emp limit 10 offset 2; 跳过前两条 取10条数据
在使用limit时需注意:
(1)偏移量为0时,可以缺少不写
(2)在实际工作中,所有的增量信息展示页面,默认都得按照分页展示
分页展示功能的小技巧:
页码:page
每页展示数据条数:num
select * from 表名 limit (page-1) *num,num;
四、单行函数
在使用单行函数的时候需注意:
(1)单行函数可以放置在select后面返回,也可以跟在where后面做判断条件使用
(2)单行函数的使用场景主要是用来验证数据的正确性
- 字符串函数
upper(字段)
英文小写转大写
lower(字段)
英文大写转小写
length(字段)
返回字段的长度 字母数字算1个长度,1个中文在utf8字符集中算3个,在gbk字符集中算2个
char_length(字段)
返回字段的长度 1个中文的长度也是1
replace(字段,被替换内容,新内容)
substring(字段,截取开始位置[,截取长度])
从指定位置截取指定长度的内容,当没有指定截取长度时,表示从开始位置之后的所有
left(字段,截取长度)
左截取
right(字段,截取长度)
右截取
lpad(字段,补齐长度,补齐内容)
左补齐 如果原字段长度大于指定的补齐长度的话,会进行截取操作
rpad(字段,补齐长度,补齐内容)
右补齐 如果原字段长度大于指定的补齐长度的话,会进行截取操作
concat(字段1,字段2,...,字段N)
将多个字段拼接在一起之后返回 - 数学函数
abs
(数值)取绝对值
floor
(数值)向下取整
ceiling
(数值)向上取整:寄快递
round
(数值,小数点位数)四舍五入 保留有效指定的小数点位数,会进行四舍五入。
truncate
(数值,小数点位数)保留指定位数的小数点, 不会进行四舍五入
mod(a,b)
取余 返回a除以b返回的余数
rand()
返回0-1之间的随机数 - 日期时间函数
now()
返回当前时间
year()
返回日期的年
month()
返回当前月份
day()
返回当前天
curdate()
返回当前日期 “年:月:日”
curtime()
返回当前的时间 “时:分:秒”
date_add
(日期,interval 数量 year/month/day/hour/minute/second)对时间进行增加或者减少,较少就用’-1’等
date_format(日期,指定格式)
‘%Y-%m-%d %H:%i:%s’ - 控制流函数
if控制流函数
if(表达式,值1,值2)
表示:如果表达式成立,则返回值1,如果表达式不成立,则返回值2
ifnull控制流函数
ifnull(字段,指定值)
表示:如果字段的值为空(null),则返回指定值
总结
综上内容,SQL提供了丰富的函数与子句,包括聚合函数、having筛选、limit限制以及单行函数。聚合函数如count, sum等用于统计;having用于分组后筛选;limit用于结果限制,常用于分页。单行函数覆盖字符串处理、数学计算、日期操作及条件逻辑,如字符串截取、数值四舍五入、日期加减等。这些工具极大增强了SQL的数据处理能力。