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 = 3HAVING后面的条件只会作用于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关键字

602

被折叠的 条评论
为什么被折叠?



