PostgreSQL – WHERE 子句
PostgreSQL WHERE 子句用于过滤 SELECT 语句返回的结果。
Syntax: SELECT select_list FROM table_name WHERE condition;
我们来分析一下上面的语法:
- WHERE 子句紧跟在 SELECT 语句的 FROM 子句之后
- 条件评估为真、假或未知。它可以是布尔表达式,也可以是使用AND和OR运算符的布尔表达式的组合。
- WHERE 子句还可以与UPDATE和DELETE语句一起使用,以指定要更新或删除的行。
下表为我们提供了比较有效的运算符在PostgreSQL中的列表:
Operator | Description |
---|---|
= | Equal |
> | Greater than |
< | Less than |
>= | Greater than or equal to |
<= | Less than or equal to |
<> or =! | Not equal |
AND | Logical AND operator |
OR | Logical OR operator |
在本文中,我们将使用示例 DVD 租赁数据库,在此处进行了说明,可以通过单击此链接进行下载。
现在,让我们看一些例子。
示例 1:
将 WHERE 子句与等号 (=)运算符。在这里,我们将在示例数据库的“customer”表中使用相等运算符。
SELECT
last_name,
first_name
FROM
customer
WHERE
first_name = 'Kelly';
输出:
示例 2:
将 WHERE 子句与 AND运算符。在这里,我们将在示例数据库的“customer”表中使用 AND运算符。
SELECT
last_name,
first_name
FROM
customer
WHERE
first_name = 'Kelly'
AND last_name = 'Knott';
输出:
示例 3:
将 WHERE 子句与 OR运算符。在这里,我们将在示例数据库的“customer”表中使用 OR运算符。
SELECT
first_name,
last_name
FROM
customer
WHERE
last_name = 'Cooper' OR
first_name = 'Jo';
输出:
示例 4:
将 WHERE 子句与 IN运算符。 IN运算符用于字符串匹配。在这里,我们将在示例数据库的“customer”表中使用 IN运算符。
SELECT
first_name,
last_name
FROM
customer
WHERE
first_name IN ('Kelly', 'Jo', ' Alexander');
输出:
示例 5:
将 WHERE 子句与 LIKE运算符。 LIKE运算符用于查找匹配特定模式的字符串。在这里,我们将在示例数据库的“customer”表中使用 LIKE运算符。
SELECT
first_name,
last_name
FROM
customer
WHERE
first_name LIKE 'Kath%';
输出:
示例 6:
将 WHERE 子句与 BETWEEN运算符。如果值在上述范围内,则 BETWEEN运算符返回。在这里,我们将在示例数据库的“customer”表中使用 BETWEEN运算符。
SELECT
first_name,
LENGTH(first_name) name_length
FROM
customer
WHERE
first_name LIKE 'K%' AND
LENGTH(first_name) BETWEEN 3 AND 7
ORDER BY
name_length;
输出:
示例 7:
使用带有不等运算符(<>) 的 WHERE 子句。在这里,我们将在示例数据库的“customer”表中使用 <>运算符。
SELECT
first_name,
last_name
FROM
customer
WHERE
first_name LIKE 'Bra%' AND
last_name <> 'Motley';
输出: