哪里(where)和sql中的having子句(having clause in sql)的区别

数据对每个组织都很重要。因此,有必要以有组织的方式存储数据以检索它们。数据存储在表中。数据库由一组表组成。一种常见的数据库类型是关系数据库。在关系数据库中,表是相互关联的。例如,表customer连接到order表。关系数据库管理系统(RDBMS)是基于关系模型的数据库管理系统。它用于管理关系数据库。一些RDBMS的例子是MySQL、MSSQL和Oracle。结构化查询语言(SQL)是用于操作和检...

哪里(where)和sql中的having子句(having clause in sql)的区别

数据对每个组织都很重要。因此,有必要以有组织的方式存储数据以检索它们。数据存储在表中。数据库由一组表组成。一种常见的数据库类型是关系数据库。在关系数据库中,表是相互关联的。例如,表customer连接到order表。关系数据库管理系统(RDBMS)是基于关系模型的数据库管理系统。它用于管理关系数据库。一些RDBMS的例子是MySQL、MSSQL和Oracle。结构化查询语言(SQL)是用于操作和检索关系数据库中的数据的语言。SQL中有各种各样的子句来执行不同的任务。其中两个是在哪里和有。本文讨论SQL中where和having子句之间的区别。SQL中where和having子句的关键区别在于,where子句用于在分组或聚合发生之前过滤记录,而having子句用于在分组或聚合发生后过滤记录。

目录

1. 概述和主要区别
2. SQL中的where子句是什么
3. SQL中的having子句是什么
4. SQL中where和having子句的相似性
5. 并列比较——表格形式的SQL中where vs having子句
6. 摘要

什么是sql中的where子句(where clause in sql)?

它有助于根据给定的条件从表中检索、更新或删除一组特定的数据。程序员可以使用where子句来限制和获取所需的数据。查询只对where子句指定的条件为true的记录执行。它可以与select、update和delete一起使用。

 

参考下面的学生表,

哪里(where)和sql中的having子句(having clause in sql)的区别

要选择student_id等于3的学生的姓名和年龄,可以使用以下SQL查询。

从student_id=3的学生中选择name,age;

也可以使用不等于(!=),大于(>),小于(=),小于或等于(<=)。要选择年龄不等于15岁的学生编号和姓名,可以使用以下SQL查询。

从学生年龄中选择学生编号,姓名!=15;

要将学生2的年龄更改为13岁,可以使用以下查询。

更新student set age=13,其中id=3;

要删除学生编号为4的记录,可以使用以下查询。

从student_id=4的学生中删除;

and、or运算符可用于组合多个条件。

从student中选择name,其中student_id=1且age=15;查询将检索名称Ann。

以下是SQL中where子句的一些示例。如果有GROUPBY子句,则where子句出现在该子句之前。

什么是sql中的having子句(having clause in sql)?

SQL语言提供了一些函数来方便地执行计算。它们被称为聚合函数。min()用于查找所选列的最小值。max()用于查找所选列的最大值。avg()用于查找列中的平均值,sum()用于查找列的总和。这些是聚合函数的一些示例。参考下表,

哪里(where)和sql中的having子句(having clause in sql)的区别

程序员可以编写如下SQL查询来检索余额超过2000的客户。

从订单组中按金额(余额)>2000的客户选择*。

这将打印余额总和大于2000的客户记录。它将打印客户Ann和Alex的记录。

having子句用于检索满足特定条件的组的值。因此,属于给定条件的组将由此出现。having子句出现在group by子句之后。如果groupby子句不存在,那么having子句的工作方式与where子句类似。

哪里(where)和sql中的having子句(having clause in sql)的共同点

  • 它们都是结构化查询语言中的子句。
  • 两者都可以用来过滤检索一组数据。

哪里(where)和sql中的having子句(having clause in sql)的区别

SQL中的where vs having子句
where是一个SQL子句,用于在从单个表中获取数据或通过与多个表联接来指定条件。 having是一个SQL子句,它指定SQL select语句只应返回聚合值满足指定条件的行。
目的
where子句用于筛选行。 having子句用于筛选组。
聚合
where子句不能与聚合函数一起使用,除非它在Having子句中包含的子查询中。 聚合函数可以与having子句一起使用。
滤波方法
where子句充当一个前置过滤器。 having子句的行为类似于后过滤器。
Group By子句顺序
where子句在Group By子句之前使用。 having子句在GROUPBY子句之后使用。
用于
where子句可以与select、update和delete一起使用。 having子句仅与select一起使用。

总结 - 哪里(where) vs. sql中的having子句(having clause in sql)

SQL是结构化数据库中使用的语言。where are having是SQL中的两个子句。本文讨论了where和having子句之间的区别。SQL中where和having子句的区别在于where用于在分组或聚合发生之前过滤记录,而having用于在分组或聚合发生后过滤记录。

引用

  • 发表于 2020-10-24 02:15
  • 阅读 ( 231 )
  • 分类:IT

你可能感兴趣的文章

哪里(where)和在关系从句中(which in relative clauses)的区别

...写作中最好使用传统的语法规则(非限定关系从句)。 哪里(where)和在关系从句中(which in relative clauses)的区别 Where是关系副词,Where是关系代词。然而,我们可以用它们来构成一个关系从句。关系从句中的Where总是表示一个位置,...

  • 发布于 2020-10-17 18:51
  • 阅读 ( 276 )

如何在mysql中有效地处理日期和时间

... 学习各种MySQL函数,以便轻松地处理和管理数据库中的日期/时间。 ...

  • 发布于 2021-03-26 17:00
  • 阅读 ( 235 )

如何使用sql连接一次查询多个数据库表

... 这不是必需的,但是如果您希望遵循本文中的示例,可以使用以下终端命令在本地初始化示例数据库: ...

  • 发布于 2021-03-27 04:02
  • 阅读 ( 295 )

有(having)和where子句(where clause)的区别

...where子句应用于单个行。where子句用于选择要包含在查询中的行,并使用比较谓词,它排除没有被比较谓词计算为true的行。它用于引用聚合函数的条件中,并用于在from子句中指定的表中选择单个行。如果没有它,结果行集将变得...

  • 发布于 2021-06-23 23:40
  • 阅读 ( 158 )

删除(delete)和截断(truncate)的区别

...关联。结构化查询语言(SQL)允许用户编写查询来操作表中的数据。有各种SQL命令,其中两个是delete和truncate。 覆盖的关键领域 1.什么是删除-定义,功能2.什么是截断-定义,功能3.删除和截断的区别是什么-关键区别的比较 关键...

  • 发布于 2021-07-01 07:59
  • 阅读 ( 241 )

滴(drop)和在sql中删除(delete in sql)的区别

...库管理系统(RDBMS)是一种成熟的数据库管理系统。RDBMS中的表是链接在一起的。MySQL和MSSQL是两种常见的RDBMS。结构化查询语言(SQL)有助于在RDBMS中编写查询并对数据执行操作。DROP和DELETE是两个主要的SQL命令。 覆盖的关键领域 ...

  • 发布于 2021-07-01 13:05
  • 阅读 ( 228 )

插入(insert)和在sql中更新(update in sql)的区别

...区别在于INSERT用于向表中添加新记录,而UPDATE用于修改表中的现有记录。 关系数据库管理系统(RDBMS)是一个允许存储和管理关系数据库的程序。关系数据库将数据存储在表中。这些表相互链接。结构化查询语言(SQL)是对RDBMS...

  • 发布于 2021-07-01 13:42
  • 阅读 ( 237 )

订货人(order by)和sql中的分组依据(group by in sql)的区别

...der by和Group by是两个SQL命令。 覆盖的关键领域 1.什么是SQL中的Order by-定义,功能2.什么是SQL中的Group by-定义,功能3.SQL中Order by和Group by之间的差异-主要差异比较 关键术语 Group by、Order by、RDBMS、SQL 什么是sql中的order by(order by in sq...

  • 发布于 2021-07-01 23:11
  • 阅读 ( 295 )

在里面(in)和存在于oracle中(exists in oracle)的区别

在Oracle中IN和EXISTS的主要区别在于,SQL引擎比较IN条件中的所有值,而SQL引擎在EXISTS中找到一个正条件后立即停止进程。 Oracle数据库是Oracle公司设计的关系数据库系统。它通常用于数据仓库和在线事务处理。Oracle的新版本是oracle1...

  • 发布于 2021-07-02 01:00
  • 阅读 ( 260 )

协调(coordinating)和从属连词(subordinating conjunction)的区别

...管,之前,那,尽管,是否,除非,直到,然后,那,在哪里,虽然,即使,那么,而不是,因为,等等。 当从句以关系代词如who,which,where,which等开头时,逗号的使用取决于从句的性质。在写作中,有两种模式使用从属连...

  • 发布于 2021-07-08 18:00
  • 阅读 ( 587 )