SQL中where和having的区别详解_数据库其它

来源:脚本之家  责任编辑:小易  

概念

where

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

聚合函数

对一组值执行计算,并返回单个值,也被称为组函数,经常与 SELECT 语句的 GROUP BY 子句的HAVING一同使用。例如

AVG 返回指定组中的平均值COUNT 返回指定组中项目的数量MAX 返回指定数据的最大值。MIN 返回指定数据的最小值。SUM 返回指定数据的和,只能用于数字列,空值被忽略。

having

having是一个过滤声明,是在查询数据库结果返回之后进行过滤,即在结果返回值后起作用,与聚合函数共同使用。

区别

使用group by进行过滤,则只能使用having。

执行顺序:where>聚合函数(sum,min,max,avg,count)>having,故where不使用聚合函数。

举个例子

职员表

 1、成绩大于8的有哪些?

使用where

 使用having

 报错,因为having是对已过滤后的结果,进行筛选,但是筛选出没有employee_score这个值,所以报错,如果加上则可以查出。

 

故where和having很多时候不能随意替代,主要是过滤对象不同。

2、每个部门年龄大于20的最高最低成绩?

 使用where也可以

 但是需要注意执行顺序

注意事项

在编写sql语句时,要注意where和group by的执行顺序,where应在前执行,group by 在后,否则会报错。

总结

到此这篇关于SQL中where和having的区别的文章就介绍到这了,更多相关SQL where和having区别内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:sql语句中where和having的区别SQL 中having 和where的区别分析sql中的 where 、group by 和 having 用法解析SQL中where子句与having子句的区别小结数据库SQL中having和where的用法区别SQL中Having与Where的区别SQL中Having与Where的区别及注意

  • 本文相关:
  • 错误代码:1100 table ''t_depart_info'' was not locked with l
  • 数据库设计规范化的五个要求 推荐收藏
  • 数据库 左连接 右连接 全连接用法小结
  • centos 8.2部署couchdb 3.3数据库的方法
  • 海量数据库的查询优化及分页算法方案集合1/2
  • 几种常用db驱动和db连接串小结
  • 数据库设计技巧[转]
  • sql服务器面临的危险和补救.读[十种方法]后感.
  • sql server、access数据排名的实现方法(例如:成绩排名)
  • 介绍postgresql中的lateral类型
  • 数据库中having 和where有什么区别
  • SQL中WHERE 和HAVING的区别
  • sql语句中where和having的区别
  • 数据库中“having” 和“where”有什么区别?
  • sql中where和having的区别
  • SQL语言中“where”和“having”有什么区别?
  • 简述sql语句中where和having的区别,和使用的地方...
  • SQL语言中where和having有什么区别?
  • where 和having的区别
  • sql中where和having的功能分别是什么?区别是什么?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页sql语句中where和having的区别sql 中having 和where的区别分析sql中的 where 、group by 和 having 用法解析sql中where子句与having子句的区别小结数据库sql中having和where的用法区别sql中having与where的区别sql中having与where的区别及注意错误代码:1100 table ""t_depart_info"" was not locked with l数据库设计规范化的五个要求 推荐收藏数据库 左连接 右连接 全连接用法小结centos 8.2部署couchdb 3.3数据库的方法海量数据库的查询优化及分页算法方案集合1/2几种常用db驱动和db连接串小结数据库设计技巧[转]sql服务器面临的危险和补救.读[十种方法]后感.sql server、access数据排名的实现方法(例如:成绩排名)介绍postgresql中的lateral类型sql join on 用法sqlserver、mysql、oracle三种数mysql mysqldump命令使用详解sql中代替like语句的另一种写法如何让sql运行得更快关于adox的相关知识如何取得一个表的所有字段名用逗sql server下数据库链接的使用方sql server 2005的表分区sql 查询语句积累sqlserver与access常用sql函数区别数据库正规化和设计技巧数据库中union 与union all 的区别mysql与oracle 差异比较之七用户权限数据库分页查询语句数据库查询access转sqlserver数据库的注意事项带参数的sql和不带参数的sql存储过程区别sql语句优化的一些必会指南在postgresql中实现递归查询的教程sql小计汇总 rollup用法实例分析
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved