MySql基础——select的子句

1.group by(分组)

对查询到的结果进行分组,一般会结合COUNT,SUM,AVG,MAX,MIN一起使用

例如:我想查询每个班级的语文平均分数:

SELECT AVG(yuwen) avg_s FROM score GROUP BY class_id;
展示的结果将会按照班级进行分组,并有计算出每个班级语文平均成绩的字段avg_s

2.order by(排序)

对查询结果进行排序,排序分升序(ASC)和降序(DESC)

例如:按照id进行降序查询

SELECT * FROM student ORDER BY id DESC

查询出来的结果第一列将会是id数最大的一条数据,之后按照降序排列

默认是升序排列,如果是指定了多个排序字段,则会将第一个字段相等的数据按照第二个字段进行排序,以此类推

3.having(只对查询结果进行作用)

会对查询出来的结果进行操作

例如:查询出所有成绩不及格的同学

SELECT * FROM score WHERE s_score<60

再需要从这些不及格的同学中筛选出3班的人,当然这里可以用AND来解决,用having也同样可以解决这个问题

SELECT * FROM score WHERE s_score<60 HAVING class_id = 3
HAVING后面的条件只会作用于WHERE语句查询出来的数据,其方式类似于将WHERE子句查询出的数据作为一张临时表,HAVING子句再从这张临时表中查询数据

4.limit(限制查询条目)

利用offset和limit可以实现分页查询的功能

例如:分页查询,每页十条数据

SELECT * FROM student LIMIT 0,10

以上的0是偏移值,10是查询出十条记录,偏移值为0,则是从第一条数据开始查询

如果偏移值是1,则是从第二条数据开始查询

limit的多种写法

SELECT * FROM student LIMIT 10;//这里没有设置偏移值,所以使用默认值,即0,查询出前十条数据
SELECT * FROM student LIMIT 10 OFFSET 0;//查询结果与上面一致,这里使用OFFSET关键字来声明偏移值
SELECT * FROM student LIMIT 0,10;//与上面的结果一样,省略了OFFSET关键字

你可能感兴趣的:(数据存储,------MySql)