【MySQL刷题笔记】关键词

limit

limit m, n:从第m条开始取(m>=0),取n条数据。例如:
求Numbers数据库中number字段第3大的数值:

select number from Numbers limit 2, 1

求Numbers数据库中number字段最小的10个数组:

select number from Numbers order by number desc limit 0, 10
having

处理顺序:where>group by>having
先处理where,再根据group by进行分组,再通过having进行筛选。

显示每个地区的总人口数和总面积:

SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region

上面查询字段的意思是,先通过region分组,然后显示每个region下的population和are总数

显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区:

SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000

首先通过region分组,然后计算每个region下population和area的总和,最后通过having筛选出area总和超过1000000的region。
这里having不能被where替代,因为where比group by先行,就不能按region来统计sum(area)。
having子句可以让我们筛选分组后的各组数据

但是having和where在单独使用时是对等的:

SELECT regagent,amount FROM `cy_pay_ok`  having amount>1000 ;

SELECT regagent,amount FROM `cy_pay_ok`  where amount>1000 ;
发布了390 篇原创文章 · 获赞 27 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/AXIMI/article/details/104294304