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 运算符处理字符串值。
考虑下表
员工
让我们对上表运行以下查询
SELECT * FROM Employees WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');
它返回以下结果
我们有一个包含三个名字的列表。我们正在搜索是否可以在 Employees 表的 name 列中找到这些名字中的任何一个。Kate Joel 与表中一条记录匹配,并返回了其详细信息。
使用数字
现在,让我们看看如何使用 IN 运算符处理数字。
考虑下面的 Price 表
价格
我们可以对表运行以下查询
SELECT * FROM Price WHERE price IN (200, 308, 250, 550);
这将返回以下内容
我们创建了一个包含 4 个数字的列表。我们正在检查是否可以将这些值中的任何一个与 Price 表的 price 列中的值匹配。匹配了两个值,并返回了它们的详细信息。
使用 NOT 运算符
IN 运算符可以与 NOT 运算符一起使用。它返回未在指定列中找到的值。我们将使用 Price 表来演示这一点。
SELECT * FROM Price WHERE price NOT IN (200, 400, 190, 230);
这将返回以下内容
我们创建了一个包含 4 个数字的列表。我们正在检查 Price 表的 price 列中不属于该列表的值。未找到两个值:250 和 300。因此,已返回它们的详细信息。
使用 pgAdmin
现在让我们看看如何使用 pgAdmin 执行这些操作。
使用字符串
要通过 pgAdmin 完成相同的操作,请执行此操作
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
SELECT * FROM Employees WHERE name IN ('James John', 'Mercy Bush', 'Kate Joel');
步骤 4) 点击 Execute 按钮。
它应该返回以下内容
使用数字
要通过 pgAdmin 完成相同的操作,请执行此操作
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
SELECT * FROM Price WHERE price IN (200, 308, 250, 550);
步骤 4) 点击 Execute 按钮。
它应该返回以下内容
使用 NOT 运算符
要通过 pgAdmin 完成相同的操作,请执行此操作
步骤 1) 登录您的 pgAdmin 账户。
步骤 2)
- 在左侧的导航栏中,点击 Databases。
- 点击 Demo。
步骤 3) 在查询编辑器中输入查询
SELECT * FROM Price WHERE price NOT IN (200, 400, 190, 230);
步骤 4) 点击 Execute 按钮。
它应该返回以下内容
摘要
- IN 运算符与 WHERE 运算符一起使用。它允许检查特定值是否存在于特定表中。
- IN 运算符有助于减少在 SELECT、UPDATE、INSERT 或 DELETE 语句中使用多个 OR 运算符的需要。
- 在创建要检查值是否存在的字符串列表时,列表中的每个值都应包含在单引号中。
- IN 运算符也可以与数字一起使用。
- 当 IN 运算符与 NOT 运算符一起使用时,它会返回未在指定列中找到的所有值。