提要:在本教程中,您将学习如何使用 PostgreSQL 的 WHERE 子句来过滤从 SELECT 语句返回的行。

在之前的教程中,你已经学过了如何通过 SELECT 语句从数据表里查询数据。如果只想查询表中的特定数据,该怎么办?要实现这个功能,需要在 SELECT 语句中使用 WHERE 子句。

先来看一下 WHERE 子句的语法。

PostgreSQL 的 WHERE 子句

WHERE 子句的语法如下:

SELECT column_1, column_2, column_n
FROM table_name
WHERE conditions;

WHERE 子句出现在 SELECT 语句的 FROM 子句之后。conditions 用于指定过滤的条件。PostgreSQL 提供了一些标准运算符来构造过滤条件。

下表展示了标准的比较运算符。

运算符 说明
= 等于
> 大于
< 小于
>= 大于或等于
<= 小于或等于
<>!= 不等于
AND
OR
NOT

下面通过一些实例来演示 WHERE 子句的使用。

PostgreSQL WHERE 子句的示例

如果要获取所有名字是(first_name字段)Jamie的客户数据(customer表),可以像下面的示例一样,使用=运算符:

SELECT last_name, first_name
FROM customer
WHERE first_name = 'Jamie';

如果要获取所有名字是Jamie,并且姓氏(last_name字段)是Rice的客户数据,可以使用 AND 运算符进行逻辑运算:

SELECT
  last_name, first_name
FROM
  customer
WHERE 
  first_name = 'Jamie'
  AND
  last_name = 'Rice';

如果要获取那些支付的租金在 1 美元以下或者 8 美元以上的客户,可以使用 OR 运算符:

SELECT customer_id,
 amount,
 payment_date
FROM payment
WHERE amount <= 1 OR amount >= 8;

有很多方式通过标准运算符来构造条件。在后面教程中,我们将学习到如何通过模式匹配或使用诸如BETWEENINis等特殊运算符来构造条件。所以,抓紧时间通过我们的示例数据库,使用本节列出的标准比较运算符来进行WHERE子句的练习。

上一篇:PostgreSQL的ORDER BY
下一篇:PostgreSQL的LIMIT