PostgreSQL WHERE 子句17 Mar 2025 | 5 分钟阅读 在本节中,我们将了解 PostgreSQL where 子句的工作原理,它用于过滤 Select 命令返回的行。 WHERE 条件用于描述从表或连接各种表获取数据时的条件。它通常与 SELECT、UPDATE 和 DELETE 命令一起使用,以过滤输出。 仅当满足条件时,它才会返回准确的结果。 注意:要选择满足详细条件的行,我们使用 WHERE 子句。SELECT 命令返回表中一列或多列的所有行。PostgreSQL WHERE 子句的语法PostgreSQL WHERE 条件的语法如下 在 Select 命令中,WHERE 条件位于 FROM 子句之后。 该条件用于过滤从 SELECT 命令返回的行。 where 子句可以是 Boolean 表达式,或者如果我们使用 AND & OR 运算符,则可以是 Boolean 表达式的组合。 该子句必须评估为 true、false 或 unknown。 WHERE 条件以下列格式工作 它从 From 子句开始 → 然后执行 Where 条件 → 之后它将 Select 特定的列 → 然后由 Order by 子句执行。 ![]() WHERE 条件不支持 SELECT 命令下的 列别名。 Where 子句支持 DELETE 和 UPDATE 命令,用于定义已删除和已更新的行。 WHERE 条件 可以与 逻辑和比较运算符 一起使用,如下表所示
PostgreSQL WHERE 条件的示例让我们看一些示例,在这些示例中,我们将学习 WHERE 子句 在 PostgreSQL 中的工作方式。 为此,我们将采用我们在 PostgreSQL 教程的早期部分中创建的 Employee 表。 下面的屏幕截图定义了 Employee 表中存在的不同列 ![]() 在上表中,我们将使用 where 子句 执行 不同类型的运算符。
在下面的示例中,我们将使用 And 逻辑运算符 来组合 employee 表中的两个 Boolean 表达式,以查找 first_name 为 Mia 且 last_name 为 Smith 的记录。 输出 在执行上述命令后,我们将获得以下输出 ![]()
在下面的命令中,我们使用 等于 (=) 运算符 在 employee 表中使用 where 条件 来标识 last_name 等于 smith 的记录。 输出 执行上述命令后,我们将获得下面的输出,该输出将提取 last _name 等于 smith 的两条记录。 ![]()
在下面的示例中,我们将使用 employee 表中的 OR 逻辑运算符 来标识 first_name 为 Megan 和 last_name 为 Will 的记录。 输出 在实现上述命令后,我们将获得以下输出 ![]()
在这里,我们将使用 LIKE 运算符 来标识与定义的模式匹配的字符串。 以下命令显示了 employee 表中 last_name 以字符串 smi 开头的那些记录。 输出 执行上述命令后,我们将获得以下输出,其中上述查询提取了 last_name 以 smi 字符串 开头的 四条记录 ![]() 注意:在上面的命令中,% 被称为通配符,它有助于匹配任何字符串。 'smi%' 模式匹配那些以 'smi' 开头的字符串。
在这里,我们将使用 IN 运算符 将字符串与列表中的任何字符串匹配。 以下命令显示了 employee 表中 last_name 为 smi, smith 的那些记录。 输出 一旦我们实现了上述命令,我们将得到以下输出 ![]()
在下面的命令中,我们将使用 Between 运算符 来显示以字符串 ith 结尾,并且在 employee 表中具有 2 到 6 个字符的 last_name。 注意:在此,我们使用 LENGTH() 函数来获取输入字符串字符的数量。输出 执行上述命令后,我们将获得以下输出,其中上述查询提取了与 ith 字符串 匹配的两个记录,并且 名称长度 介于 2 到 6 之间。 ![]()
在下面的示例中,我们将使用 不等于 <> 运算符来标识 address 以 New string 开头,并且 first_name 不等于 Olivia 的那些 employees。 输出 执行上述命令后,我们将获得以下输出,其中查询提取了 address 与 New string 匹配,并且 first_name 不等于 Olivia 的 两条记录。 ![]() 注意:我们可以同时使用 <> 运算符和 != 运算符,因为它们是相似的,正如我们在下面的命令中看到的那样输出 执行上述命令后,我们将获得以下输出,其中查询提取了地址以 new string 开头,并且 first_name 不等于 John 的一条记录。 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。