📜  PostgreSQL – WHERE 子句

📅  最后修改于: 2022-05-13 01:57:15.306000             🧑  作者: Mango

PostgreSQL – WHERE 子句

PostgreSQL WHERE 子句用于过滤 SELECT 语句返回的结果。

我们来分析一下上面的语法:

  • WHERE 子句紧跟在 SELECT 语句的 FROM 子句之后
  • 条件评估为真、假或未知。它可以是布尔表达式,也可以是使用ANDOR运算符的布尔表达式的组合。
  • WHERE 子句还可以与UPDATEDELETE语句一起使用,以指定要更新或删除的行。

下表为我们提供了比较有效的运算符在PostgreSQL中的列表:

OperatorDescription
=Equal
>Greater than
<Less than
>=Greater than or equal to
<=Less than or equal to
<> or =!Not equal
ANDLogical AND operator
ORLogical 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';

输出: