提要:在本教程中,您将学习PostgreSQL布尔数据类型以及如何在设计数据表时使用它。

布尔类型简介

PostgreSQL 支持一个布尔数据类型(BOOLEAN):它可以有三种状态:TRUEFALSENULL。在 PostgreSQL 数据库中使用 1 字节来存储布尔值。BOOLEAN 可以简写为 BOOL

标题 SQL 中,布尔类型的值可以是 TRUEFALSENULL。但是,PostgreSQL 在处理 TRUEFALSE 值时非常灵活。下表显示了 PostgreSQL 中 TRUEFALSE 的有效字面值。

TRUE FALSE
true false
't' 'f'
'true' 'false'
'y' 'n'
'yes' 'no'
'1' '0'

示例

首先,创建一个新表 stock_availability 来记录哪个产品可用。

CREATE TABLE stock_availability (
 product_id INT NOT NULL PRIMARY KEY,
 available BOOLEAN NOT NULL
);

接下来,插入一些数据。我们使用布尔值的各种字面值。

INSERT INTO stock_availability (product_id, available)
VALUES
 (100, TRUE),
 (200, FALSE),
 (300, 't'),
 (400, '1'),
 (500, 'y'),
 (600, 'yes'),
 (700, 'no'),
 (800, '0');

然后,看看表中,可用的产品的数据:

SELECT
 *
FROM
 stock_availability
WHERE
 available = 'yes';
 product_id | available
------------+-----------
        100 | t
        300 | t
        400 | t
        500 | t
        600 | t
(5 rows)

可以省略具体的布尔值:

SELECT
 *
FROM
 stock_availability
WHERE
 available;

相应的,要查到不可以用的产品:

SELECT
 *
FROM
 stock_availability
WHERE
 available = 'no';
 product_id | available
------------+-----------
        200 | f
        700 | f
        800 | f
(3 rows)

和下面的语句等效:

SELECT
 *
FROM
 stock_availability
WHERE
 NOT available;
上一篇:PostgreSQL 临时表