where和having的区别

IT教程 4年前 (2020) https://www.55wd.com

HAVING sex

1.类型

“where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且“where”后面不能写“聚合函数”。

“having”是一个过滤声明,是在查询数据库结果返回之后进行过滤,即在结果返回值后起作用,并且“having”后面可以写“聚合函数”。

where、聚合函数、having在from后面的执行顺序:

   where>聚合函数(sum,min,max,avg,count)>having

实例:用group by来比较二者

若须引入聚合函数来对group by 结果进行过滤 则只能用having。

select sum(score) from student where sex="man" group by name having sum(score)>90;

注意事项 :

1、where 后不能跟聚合函数,因为where执行顺序大于聚合函数。

2、where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

3、having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

2.使用角度

where后面不能使用聚合函数的原因是where的执行顺序在聚合函数之前。

3.实例

(1) where和having均可使用:

select score name from student where score>60;

select score name from student having score>60;

可用having的原因是已经筛选出score字段,在这种情况下是和where等效的。

(2) 只能用where、不能用having

select score name from student where sex="man";  正确的

select score name from student having sex="man";  错误的,因为前面没有筛选sex。

(3) 只能用having、不能用where

select  goods_category_id,avg(goods_price) as ag from goods_table group by goods_category having ag>100; 正确的

select goods_category_id,avg(goods_price) as ag from goods_table where ag>100 group by goods_category;  错误的

注意:where 后面要跟的是数据表里的字段,如果我把ag换成avg(goods_price)也是错误的!因为表里没有该字段。而having只是根据前面查询出来的是什么就可以后面接什么。

mysql中int、bigint、smallint 和 tinyint的区别详细

mysql中bigint、int、mediumint、smallint 和 tinyint的取值范围类型 占用字节tinyint 1smallint 2mediumint 3i

苹果4和4s有什么区别

内容摘要:苹果4和4s有什么区别?一起看看吧!

辣根是什么东西?辣根和芥末的区别介绍

内容摘要:本文为大家介绍辣根是什么,以及辣根和芥末的区别。

苹果iPad Air3和Mini5哪个值得买 iPad Mini5和iPad Ai

3月18日晚上,苹果悄然发布了 iPad Air 3 和iPad Mini 5两款平板电脑产品,相比前代产品都间隔了几年才更新,另外均搭载最新A12处理器,

9.7寸iPad配置怎么样 一图看懂新旧款iPad参数区别对比

3月21日晚上,苹果官网上架了全新版本的iPhone和iPad,除了中国红iPhone 7/Plus外,新款命名为iPad的iPad也同样值得关注,此时旧款的iPad

文章回顾

大家看了本文where和having的区别的精彩教程资源内容,是不是对where和having的区别了解更多,真心希望where和having的区别能帮助到你, 小编会一直给你带来更多教程资源文章信息。

版权声明: 发表于 2020-07-12 3:48:26。

本文由第三方用户分享仅代表作者观点,不代表本网站立场,秉承互联网开放分享的精神,目的在于传递更多信息,加强各行业互通交流,但对内容不作任何保证或承诺,请读者自行参考斟酌。网站发布的信息(包含但不限于版式、图片、字体、文章等素材)由第三方用户分享,版权归原作者所有,本站不承担任何相关的版权纠纷等相关责任。如您认为本篇内容侵犯了您的权益,请与我们联系,我们会及时处理。

豌豆资源网专注分享全网综合资源网站大全,致力于超实用的内容资源搜索。

转载请注明:
本文标题:where和having的区别
本文地址:https://www.55wd.com/s107631/