MySQL(返璞归真)
1 . Limit的用法
select * from Customer LIMIT i,10;
# 从 i+1条开始累加10条数据,i = 0 可以省略
# 检索从第2行开始,累加10条id记录,共显示id为2....11
2 Order by
select id from study order by id
# 默认asc排序升序 desc降序
3 Group by
GROUP BY 将分组字段结果中相同内容作为一组,并且返回每组的第一条数据,所以单独分组没什么用处。
分组的目的就是为了统计,一般分组会跟聚合函数一起使用。
-- 按性别进行分组,求男生和女生数学的平均分
select sex, avg(math) from student group by sex;
4 MySQL中的聚合函数
-- 查询年龄大于 20 的总数
select count(*) from student where age>20;
-- 查询数学成绩总分
select sum(math) 总分 from student;
-- 查询数学成绩平均分
select avg(math) 平均分 from student;
-- 查询数学成绩最高分
select max(math) 最高分 from student;
-- 查询数学成绩最低分
select min(math) 最低分 from student;
5 having 和 where的区别
子名 | 作用 |
---|---|
where | 1) 对查询结果进行分组前,将不符合 where 条件的行去掉,即在分组之前过滤数据,即先过滤再分组。2) where 后面不可以使用聚合函数 |
having | 1) having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,即先分组再过滤。2) having 后面可以使用聚合函数 |
6 Distinct和Group by 去重
select DISTINCT country FROM Websites;
# distinct 一般用来查询不会重复记录的条数
select id from study order by id
select distinct id, name from web
# distinct会对id和name进行去重
7 连接
1. 内连接
select * from emp e inner join dept d on e.`dept_id` = d.`id`;
2. 外连接
select * from dept d left join emp e on d.`id` = e.`dept_id`; // 左外连接
select * from dept right join emp on dept.`id` = emp.`dept_id`; // 右外连接
续