跳到主要内容

PostgreSQL 比较运算符

介绍

在 PostgreSQL 中,比较运算符用于比较两个值或表达式,并返回一个布尔值(TRUEFALSENULL)。这些运算符在查询中非常常见,尤其是在 WHERE 子句中,用于筛选满足特定条件的记录。

本文将详细介绍 PostgreSQL 中常用的比较运算符,并通过代码示例和实际案例帮助你理解它们的用法。

常用比较运算符

PostgreSQL 提供了多种比较运算符,以下是常见的几种:

运算符描述
=等于
<>不等于
!=不等于(与 <> 相同)
>大于
<小于
>=大于或等于
<=小于或等于
BETWEEN在某个范围内
IN在某个值列表中
IS NULL是否为 NULL
IS NOT NULL是否不为 NULL
LIKE模式匹配(区分大小写)
ILIKE模式匹配(不区分大小写)
提示

<>!= 都可以用于表示“不等于”,但 <> 是 SQL 标准运算符,而 != 是 PostgreSQL 的扩展。

代码示例

1. 等于 (=) 和不等于 (<>!=)

sql
-- 查询年龄等于 25 的用户
SELECT * FROM users WHERE age = 25;

-- 查询年龄不等于 25 的用户
SELECT * FROM users WHERE age <> 25;

2. 大于 (>) 和小于 (<)

sql
-- 查询年龄大于 30 的用户
SELECT * FROM users WHERE age > 30;

-- 查询年龄小于 30 的用户
SELECT * FROM users WHERE age < 30;

3. 大于或等于 (>=) 和小于或等于 (<=)

sql
-- 查询年龄大于或等于 30 的用户
SELECT * FROM users WHERE age >= 30;

-- 查询年龄小于或等于 30 的用户
SELECT * FROM users WHERE age <= 30;

4. BETWEEN 运算符

BETWEEN 用于检查某个值是否在指定的范围内(包括边界值)。

sql
-- 查询年龄在 20 到 30 之间的用户
SELECT * FROM users WHERE age BETWEEN 20 AND 30;

5. IN 运算符

IN 用于检查某个值是否在指定的值列表中。

sql
-- 查询年龄为 20、25 或 30 的用户
SELECT * FROM users WHERE age IN (20, 25, 30);

6. IS NULLIS NOT NULL

IS NULL 用于检查某个值是否为 NULL,而 IS NOT NULL 用于检查某个值是否不为 NULL

sql
-- 查询没有填写邮箱的用户
SELECT * FROM users WHERE email IS NULL;

-- 查询填写了邮箱的用户
SELECT * FROM users WHERE email IS NOT NULL;

7. LIKEILIKE

LIKE 用于模式匹配,区分大小写;ILIKE 则不区分大小写。

sql
-- 查询名字以 'J' 开头的用户(区分大小写)
SELECT * FROM users WHERE name LIKE 'J%';

-- 查询名字以 'j' 开头的用户(不区分大小写)
SELECT * FROM users WHERE name ILIKE 'j%';

实际案例

假设我们有一个 orders 表,记录了用户的订单信息,表结构如下:

sql
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
user_id INT,
order_date DATE,
total_amount DECIMAL(10, 2)
);

案例 1:查询 2023 年的所有订单

sql
SELECT * FROM orders 
WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

案例 2:查询总金额大于 1000 的订单

sql
SELECT * FROM orders 
WHERE total_amount > 1000;

案例 3:查询没有用户 ID 的订单

sql
SELECT * FROM orders 
WHERE user_id IS NULL;

总结

PostgreSQL 的比较运算符是编写查询时不可或缺的工具。通过本文的学习,你应该已经掌握了如何使用这些运算符来筛选和比较数据。在实际应用中,灵活运用这些运算符可以帮助你更高效地处理数据。

警告

在使用 BETWEEN 时,注意范围的边界值是否包含在内。BETWEEN 是包含边界值的。

附加资源