PostgreSQL IN、Not IN 及示例

PostgreSQL 中的 IN 运算符是什么?

IN 运算符用于 WHERE 子句,允许检查一个值是否存在于其他值列表中。 IN 操作有助于减少在 SELECT、UPDATE、INSERT 或 DELETE 语句中使用多个 OR 条件的需要。

语法

IN 运算符的语法如下

value IN (value_1, value_2, ...)

value 是您在列表中查找的值。

value_1, value_2… 是列表中的值。

如果值在列表中找到,则运算符返回 true。

列表可以是数字、字符串的集合,甚至是 SELECT 语句的输出结果,如下所示

value IN (SELECT value FROM table-name);

放在括号内的语句称为子查询。

使用字符串

让我们演示如何使用 IN 运算符处理字符串值。

考虑下表

员工

PostgreSQL In With Character

让我们对上表运行以下查询

SELECT *
FROM Employees
WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');

它返回以下结果

PostgreSQL In With Character

我们有一个包含三个名字的列表。我们正在搜索是否可以在 Employees 表的 name 列中找到这些名字中的任何一个。Kate Joel 与表中一条记录匹配,并返回了其详细信息。

使用数字

现在,让我们看看如何使用 IN 运算符处理数字。

考虑下面的 Price 表

价格

PostgreSQL In With Numeric

我们可以对表运行以下查询

SELECT *
FROM Price
WHERE price IN (200, 308, 250, 550);

这将返回以下内容

PostgreSQL In With Numeric

我们创建了一个包含 4 个数字的列表。我们正在检查是否可以将这些值中的任何一个与 Price 表的 price 列中的值匹配。匹配了两个值,并返回了它们的详细信息。

使用 NOT 运算符

IN 运算符可以与 NOT 运算符一起使用。它返回未在指定列中找到的值。我们将使用 Price 表来演示这一点。

SELECT *
FROM Price
WHERE price NOT IN (200, 400, 190, 230);

这将返回以下内容

PostgreSQL In Using NOT operator

我们创建了一个包含 4 个数字的列表。我们正在检查 Price 表的 price 列中不属于该列表的值。未找到两个值:250 和 300。因此,已返回它们的详细信息。

使用 pgAdmin

现在让我们看看如何使用 pgAdmin 执行这些操作。

使用字符串

要通过 pgAdmin 完成相同的操作,请执行此操作

步骤 1) 登录您的 pgAdmin 账户。

步骤 2)

  1. 在左侧的导航栏中,点击 Databases。
  2. 点击 Demo。

Using pgAdmin With Character

步骤 3) 在查询编辑器中输入查询

SELECT *
FROM Employees
WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');

步骤 4) 点击 Execute 按钮。

Using pgAdmin With Character

它应该返回以下内容

Using pgAdmin With Character

使用数字

要通过 pgAdmin 完成相同的操作,请执行此操作

步骤 1) 登录您的 pgAdmin 账户。

步骤 2)

  1. 在左侧的导航栏中,点击 Databases。
  2. 点击 Demo。

Using pgAdmin With Numeric

步骤 3) 在查询编辑器中输入查询

SELECT *
FROM Price
WHERE price IN (200, 308, 250, 550);

步骤 4) 点击 Execute 按钮。

Using pgAdmin With Numeric

它应该返回以下内容

Using pgAdmin With Numeric

使用 NOT 运算符

要通过 pgAdmin 完成相同的操作,请执行此操作

步骤 1) 登录您的 pgAdmin 账户。

步骤 2)

  1. 在左侧的导航栏中,点击 Databases。
  2. 点击 Demo。

Using NOT operator

步骤 3) 在查询编辑器中输入查询

SELECT *
FROM Price
WHERE price NOT IN (200, 400, 190, 230);

步骤 4) 点击 Execute 按钮。

Using NOT operator

它应该返回以下内容

Using NOT operator

摘要

  • IN 运算符与 WHERE 运算符一起使用。它允许检查特定值是否存在于特定表中。
  • IN 运算符有助于减少在 SELECT、UPDATE、INSERT 或 DELETE 语句中使用多个 OR 运算符的需要。
  • 在创建要检查值是否存在的字符串列表时,列表中的每个值都应包含在单引号中。
  • IN 运算符也可以与数字一起使用。
  • 当 IN 运算符与 NOT 运算符一起使用时,它会返回未在指定列中找到的所有值。

下载本教程中使用的数据库