MySQL 中与 HAVING 类似的子句是哪个

2024 年 8 月 29 日 | 阅读 6 分钟

关于 MySQL

MySQL 是一款开源的关系型数据库管理系统(RDBMS),它使用结构化查询语言(SQL)来管理关系型数据库。最初由 MySQL AB 于 1994 年开发,已被 Uber、Netflix、Pinterest、Amazon、Airbnb 和 Twitter 等 5,000 多家公司采用。

MySQL 的特性

  1. 易于访问
    由于 MySQL 是开源的,任何人都可以下载、使用和修改该软件。它易于使用且免费。MySQL 的源代码可供学习和根据需要进行定制。它使用了 GPL(GNU 通用公共许可证),该许可证规定了对程序允许和不允许的行为的限制。
  2. 快速且可靠
    MySQL 有效地将信息保存在内存中,以确保一致性并防止重复。MySQL 能够快速访问和操作数据。
  3. 适应性强
    系统能够与大大小小的机器群以及其他类型的数据协同工作的能力称为可伸缩性。MySQL 服务器是为了处理大型数据库而设计的。
  4. 数据格式
    支持多种数据类型,包括浮点数(FLOAT)、双精度数(DOUBLE)、字符(CHAR)、可变字符(VARCHAR)、文本、日期、时间、日期时间、时间戳、年份,有符号和无符号整数,以及更多。
  5. 字符组
    它与其他字符集兼容,例如德语、Ujis、Latin 1(cp1252 字符编码)、其他 Unicode 字符集等。
  6. 成为保护
    由于其可自定义的密码系统,该系统根据主机验证密码,然后才允许访问数据库,因此它提供了一个安全的接口。连接服务器时,密码会进行加密。
  7. 支持大型数据库
    该软件支持大型数据库,最多可达 5,000,000,000 行、150,000-200,000 张表以及 4000-5000 万条记录。

SQL 子句

SQL 是结构化查询语言的缩写。子句是 SQL 语句中的一部分或一个关键字。它用于从数据库中过滤、排序或操作数据。一个 SQL 语句可以有一个或多个子句。一些子句包括:

  • SELECT 子句
    此子句用于从数据库中表的特定列检索数据。
  • FROM 子句
    此子句用于从数据库中的特定表检索数据。
  • WHERE 子句
    此子句用于根据条件从数据库中过滤任何行的数据。
  • GROUP BY 子句
    此子句用于将具有相同值的行分组。
  • HAVING 子句
    此子句用于过滤应用于分组数据的聚合函数的结果。
  • ORDER BY 子句
    此子句用于按升序或降序排序数据。
  • LIMIT 子句
    此子句用于合并两个或多个表。
  • JOIN 子句
    此子句用于根据给定条件连接两个或多个表。
  • UPDATE 子句
    此子句用于修改表中的任何记录或值。
  • DELETE 子句
    此子句用于从表中删除行。

示例

学生编号 (Student_ID)学生姓名学生费用学生科目学生班级
1Ritama Sen3500数学5
2Sneha Roy6500化学10
3Sucharita Das2300社会科学3
4SK Shahin4500数学6
5Rupam Chatterjee3000地理学4
6Sharbani Dey2500历史3
7Mayuri Pandit4500社会科学5

让我们执行以下命令。

输出

学生编号 (Student_ID)学生姓名学生费用学生科目学生班级
3Sucharita Das2300社会科学3
5Rupam Chatterjee3000地理学4
6Sharbani Dey2500历史3

请看表中所有学生费用都低于 3500。

SQL 子句的重要性

SQL 子句在数据检索中起着至关重要的作用。

  1. 在数据检索的情况下,SQL SELECT 子句帮助我们从任何特定列检索数据。
  2. 在过滤数据时,WHERE 子句很有用。
  3. 如果有人希望按升序或降序组织数据,则使用 ORDER BY 子句。
  4. 通过使用 SQL JOIN 子句,我们可以根据条件和外键连接两个或多个表。
  5. 当涉及到 GROUP BY 子句时,它非常有用,因为它有助于对相同的数据进行分组。
  6. 每个 SQL 子句都有其重要性。

GROUP BY 子句

GROUP BY 子句用于对相同或相同的数据进行分组。

特点

  1. SELECT 语句必须与 GROUP BY 子句一起使用。
  2. GROUP BY 子句应放在 WHERE 子句之后,ORDER BY 子句和 HAVING 子句之前。
  3. 条件必须与 HAVING 子句一起放置。

语法

以下是基本语法

示例

以下是扩展语法

示例

解释 WHERE 子句

在 SQL 中,WHERE 用于从数据集中过滤数据。运算符也用于 WHERE 条件。以下是运算符列表。

在 SQL 中,WHERE 用于从数据集中过滤数据。运算符也用于 WHERE 条件。以下是运算符列表。

运算符带示例的描述
>Greater Than (大于号)
示例- SELECT * FROM student WHERE stu_marks > 85
>=大于或等于
示例- SELECT * FROM student WHERE stu_marks >= 85
<Less Than (小于号)
示例- SELECT * FROM employee WHERE salary <10000
<=小于或等于
示例- SELECT * FROM employee WHERE salary <=10000
=等于
示例- SELECT stu_name FROM student WHERE stu_marks=100
<>不等于
示例- SELECT * FROM sales where amount <> 500
BETWEEN预定义范围
示例- SELECT stu_name FROM student WHERE stu_marks BETWEEN 80 and 90
喜欢匹配模式
示例- SELECT * FROM employee WHERE emp_name LIKE '%S%'
IN检查多个值
示例- SELECT emp_name FROM employee WHERE salary IN (5000,10000)

语法

解释 HAVING 子句

HAVING 子句与 GROUP BY 子句一起使用。

特点

  1. HAVING 之后给出的条件用于过滤数据。
  2. ORDER BY 子句放在 HAVING 子句之后。
  3. 在列操作的情况下,使用 HAVING。
  4. HAVING 在 GROUP BY 子句之后使用。

语法

示例

使用 HAVING 子句实现聚合函数

让我们创建一个表。

COUNT 函数

SUM 函数

AVG 函数

区分 HAVING 和 WHERE 子句

WHERE 子句HAVING 子句
WHERE 子句指定单个记录必须满足的条件才能被查询选中。它可以在没有 GROUP BY 子句的情况下使用。HAVING 子句不能在没有 GROUP BY 子句的情况下使用。
WHERE 子句用于在分组之前选择行。HAVING 子句用于在分组之后选择行。
WHERE 子句不与聚合函数一起使用。HAVING 子句可以包含聚合函数。
WHERE 子句与 SELECT 条件一起使用。HAVING 子句用于对 GROUP 函数施加条件,并在查询中 GROUP BY 子句之后使用。