SQL中Where子句和Having子句的区别

SQL中Where子句和Having子句的区别

1. WHERE子句

WHERE 子句用于过滤表中的记录或在连接多个表时使用。只有满足 WHERE 子句中指定条件的记录才会被提取。它可以与 SELECT、UPDATE、DELETE 语句一起使用。

让我们考虑下表“student” –

Roll_no       S_Name      Age

1                a             17

2                b             20

3                c             21

4                d             18

5                e             20

6                f             17

7                g             21

8                h             17

考虑查询语句:

SELECT S_Name, Age FROM Student 
WHERE Age >=18

查询结果如下:

 S_Name      Age

b             20             

c             21             

d             18             

e             20             

g             21

2. HAVING子句

HAVING 子句用于根据 HAVING 子句中的给定条件从组中过滤记录。满足给定条件的组将出现在最终结果中。只能使用 HAVING 子句
用 SELECT 语句。

让我们考虑上面提到的 Student 表并对其应用有子句:

SELECT Age, COUNT(Roll_No) AS No_of_Students 
FROM Student GROUP BY Age
HAVING COUNT(Roll_No) > 1

查询结果如下:

Age     No_of_Students

17              3

20              2

21              2

SQL中Where子句和Having子句的区别:

SR.NO. WHERE 子句 HAVING 子句
1 WHERE子句用于根据指定条件过滤表中的记录。 HAVING 子句用于根据指定条件从组中过滤记录。
2 WHERE 子句可以在没有 GROUP BY 子句的情况下使用 HAVING 子句不能在没有 GROUP BY 子句的情况下使用
3 WHERE 子句在行操作中实现 HAVING 子句在列操作中实现
4 WHERE子句不能包含聚合函数 HAVING子句可以包含聚合函数
5 WHERE 子句可以与SELECT、UPDATE、DELETE 语句一起使用。 HAVING 子句只能与 SELECT 语句一起使用。
6 WHERE 子句用在 GROUP BY 子句之前 HAVING 子句用在 GROUP BY 子句之后
7 WHERE 子句与 UPPER、LOWER 等单行函数一起使用。 HAVING 子句与 SUM、COUNT 等多行函数一起使用。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程