MySQL单表基础知识
1.单表查询
1.1 排序
-- order by 排序关键字
-- asc 升序、desc 降序
select * from 表名 order by 排序列 asc | desc;
-- 练习
-- 1.使用价格排序(降序)
select * from product order by price desc;
-- 2.在价格排序(降序)的基础上,以分类排序(降序)
select * from product order by price desc, category_id desc;
-- 3.显示商品的价格(去重复),并排序(降序)
select distinct price from product order by price desc;
1.2 聚合
1.2.1 聚合函数:SQL基本函数,聚合函数对一组值执行计算,并返回单个值,也被称为组函数。
1.2.2 常见聚合函数 :除 COUNT 以外,聚合函数忽略空值,如果COUNT函数的应用对象是一个确定列名,并且该列存在空值,此时COUNT仍会忽略空值。
统计个数:count
最大值:max
最小值:min
求和:sum
平均值:avg
-- 练习
-- 聚合函数
-- 1 统计个数
-- count(列名 | * | 数字)
select count(category_id) from product; # 结果:12,忽略了空值
select count(*) from product; # 结果:13
select count(1) from product; # 结果:13
-- 2 价格最大值
select max(price) from product;
-- 3 价格最小值
select min(price) from product;
-- 4 价格求和
select sum(price) from product;
-- 5 价格平均值
select avg(price) from product;
1.3 分组
select 分组列 | 聚合函数 from 表名 group by 分组列 having 分组条件;
-- 练习
-- 分组
-- #1 统计各个分类商品的个数
select category_id , count(1) from product group by category_id
-- #2 统计各个分类商品的个数,且只显示个数大于1的信息
select category_id , count(1) from product group by category_id having count(1) > 1
select category_id , count(1) as c from product group by category_id having c > 1
1.4 分页
-- limit 开始索引,每页显示个数
---- 开始索引,从0开始。
-- 第一页,每页3条
select * from product limit 0,3;
-- 第二页,每页3条
select * from product limit 3,3;
-- 第三页,每页3条
select * from product limit 6,3;
-- 第pageNum页,每页pageSize条
select * from product limit (pageNum - 1) * pageSize, pageSize;