select的5中子句where,group by, havaing, order by, limit的使用顺序及实例
-- 语法:
SELECT select_list
FROM table_name
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
[limit m,n]
-- 示例:
-- limit 0,10是从第一条开始,取10条数据
select classNo from table_name
group by classNo
having(avg(成绩)>70)
order by classNo
limit 0,10
1.where
where后跟条件用来筛选我们所需的行。它后面可以跟的操作符有=、!=、<、>、<=、>=、 in、 like(可以和通配符%结合一起用,效果将会更好) 、between....and........ AND、OR 、NOT
如:select id,name,score form student where score in (每组里面的最高分组合);
2.group by(GROUP BY 语句用于结合合计函数(也叫聚合函数sum count avg max min),根据一个或多个列对结果集进行分组。否则没有多大的意义)
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面
如:我们对文字的分类id进行分组,查询每组分类的文章数 select articlecategory_id,count(*) from article group by articlecategory_id;
再次提示:
如果你使用了group by,而没有相应的使用聚合函数那么结果就没有意义了,按照实际情况来思考的话就变成了一对多了(也就是一个分组对应多个对象(也就是多行),那么一个分组对应多行数据的显示就变成了分组和第一行数据进行显示了,所以此时我们应该使用聚合函数(聚合函数就是把多个变成一),也就是对多行数据进行筛选,得到我们想要的数据,如:可以使用count计算论坛小组总帖子数,可以使用sum来计算
论坛小组帖子总回复数,可以使用max来计算论坛小组最多回复的帖子,可以使用min来计算论坛小组最少回复数(没有多大意义,商城最便宜的商品就意义了),可以使用avg来计算论坛每周的平均访问量(商城所有商品的平均价格)等。
3.having 这个是针对查询的结果进行作用,只能对结果拥有的列进行操作,与where不同的是where是针对原表(就是from后面的那张表的字段)发挥作用。其中having里面可以使用聚合函数。为group by子句设置条件,类似于where为select语句设置条件的方法。having的查找条件可以包括集合函数表达式。除此之外,它的查找条件与where查找条件相同。
select articlecategory_id,count(*) from article group by articlecategory_id having count(*)<5;
4.order by 排序 (可以对多个字段进行排序)
可以针对字段进行排序,order by 字段1 [asc] 升序,[desc] 降序
5.limit 获取条目的限定
语法 limit offset,N
limit 5 《====》 limit 0,5;
转载于:https://www.cnblogs.com/billyu/p/5033167.html
select的5中子句where,group by, havaing, order by, limit的使用顺序及实例相关推荐
- 查询limit_MySQL查询语句(where,group by,having,order by,limit)
Ⅰ where语句 -- 条件语句 where -- 条件判断 查询id值大于3,且小于5的记录 -- 字段>3 and 字段< 5; mysql> select * from wo ...
- mysql分页查询limit_MySQL查询语句(where,group by,having,order by,limit)
Ⅰ where语句 -- 条件语句 where -- 条件判断 查询id值大于3,且小于5的记录 -- 字段>3 and 字段< 5; mysql 查询id值大于等于3,且小于等于5的记录 ...
- 【数据库】select、from、where、group by、having、order by、limit的组合用法
select.from.where.group by.having.order by.limit组合用法 一.关键词意义 [1]select 用来指定查询哪些列,可以使用聚合函数. [2]from 用 ...
- SQL数据分析:sqlzoo官网学习select,where,order by,limit,聚合函数,having,常用函数,窗口函数,表链接,子查询
SQL数据分析: 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sql要学,当然,像很多金 ...
- MySQL数据库select语句6大子句(from、where、group by、having、order by 、limit )#经典员工、部门表案例语句练手!
MySQL中的select语句,有说5大子句,有说6大子句的,两者都没有问题,只不过把from接表名算上一个子句,where是条件查询,group by是分组查询,having是筛选,order ...
- oracle查询语句中select from where group by having order by的解释与应用
oracle查询语句中select from where group by having order by的解释与应用 查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from- ...
- 查询语句中select from where group by having order by的执行顺序
查询语句中select from where group by having order by的执行顺序 1.查询中用到的关键词主要包含六个,并且他们的顺序依次为 select--from--whe ...
- 当WHERE子句、GROUP BY子句和HAVING子句同时出现在一个查询中时,SQL的执行顺序
当WHERE子句.GROUP BY子句和HAVING子句同时出现在一个查询中时,SQL的执行顺序如下: (1) 执行WHERE子句,从表中选取行. (2) 由GROUP BY 子句对选取的行进行分组. ...
- SQL中的Where,Group By,Order By和Having的用法/区别
GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想 你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何 ...
最新文章
- 取代java_如何评价 Kotlin?未来是否会取代 Java?
- GitLab 8.7发布
- 在Qt Designer中使用容器
- 利用WindowsPhone7_SDK_Full.rar_for_xp,在xp下安装sdk,部署xap软件的教程
- Codeforces Round #450 (Div. 2)D. Unusual Sequences[数论][组合数学][dp II]
- 七阶拉丁方阵_【C语言】输出N阶拉丁方阵并统计个数
- python创建目录保存文件
- CustomViewWith_Image_Text_Video
- Julia的学习资料从哪里找?
- HDU 2686 MCMF
- dcp9020cdn硒鼓!错误_显示硒鼓错误的解决办法
- Haar特征提取算法的实现
- 抖音小程序达人入驻壁纸微信小程序安装教程
- 《微软System Center 2012 R2私有云部署实战》——1.4 微软私有云
- 台式计算机关机后自行重启,台式电脑关机后自动重启该怎么解决
- 7-24 猜数字游戏 (15分)
- JAVA实现接入企业微信报警
- CSS:line-height是什么?,height是什么?
- 专治选择困难症——bandit算法
- 51单片机学习笔记之新建工程、点亮一盏小灯