PostgreSQL 布尔类型

本文介绍了 PostgreSQL 中的布尔数据类型 BOOLEAN 以及用法。

布尔类型是一种表示真或者假的数据类型。PostgreSQL 数据库支持原生的布尔类型,您可以使用 BOOLEANBOOL 将一个列的类型定义为布尔值。

PostgreSQL BOOLEAN

PostgreSQL 对布尔值的处理非常灵活, true, 'true', 't', 'yes', 'y', '1' 都被视为真, false, 'false', 'f', 'no', 'n', '0' 都被视为假。 注意,这里所有的值不区分大小写。除了 truefalse,其他的都是字符类型。

PostgreSQL 布尔类型允许 NULL 值。

请注意,在 SQL 标准中,一个布尔值只接受 TRUEFALSE,和 NULL

PostgreSQL BOOLEAN 实例

请按照以下步骤事件这个实例:

  1. 首先,使用以下语句创建一个名字为 test_boolean 的新表 来演示 BOOLEAN 类型的用法。

    CREATE TABLE test_boolean (
      v VARCHAR NOT NULL,
      b BOOLEAN NOT NULL
    );
    
  2. 其次,使用以下语句向 test_boolean 表中插入一些示例数据。其中,我们对布尔值使用各种文字值。

    INSERT INTO test_boolean (v, b)
    VALUES
        (TRUE, TRUE),
        (FALSE, FALSE),
        ('t', 't'),
        ('f', 'f'),
        ('T', 'T'),
        ('F', 'F'),
        ('1', '1'),
        ('0', '0'),
        ('y', 'y'),
        ('n', 'n'),
        ('Y', 'Y'),
        ('N', 'N'),
        ('yes', 'yes'),
        ('no', 'no'),
        ('YES', 'YES'),
        ('NO', 'NO')
    RETURNING *;
    
       v   | b
    --------+---
     true  | t
     false | f
     t     | t
     f     | f
     T     | t
     F     | f
     1     | t
     0     | f
     y     | t
     n     | f
     Y     | t
     N     | f
     yes   | t
     no    | f
     YES   | t
     NO    | f
    (16 rows)

    这里,我们可以看到,各种文字值都已经转为对应的布尔值了。

  3. 使用以下语句根据 BOOLEAN 类型的列检索数据行:

    SELECT *
    FROM test_boolean
    WHERE b = 'Y';
    
      v   | b
    ------+---
     true | t
     t    | t
     T    | t
     1    | t
     y    | t
     Y    | t
     yes  | t
     YES  | t
    (8 rows)

    这里,我们在 WHERE 条件中对 BOOLEAN 列使用了一个字符值 'Y'。该语句返回了所有 btrue 的行。 您还也可以使用 't', 'yes', 'y', 或 '1' 等值代替上面语句中的 'Y'

结论

在 PostgreSQL 中,您可以是使用 BOOLEAN 或者 BOOL 保存布尔数据。 PostgreSQL 将 true, 'true', 't', 'yes', 'y', '1' 视为真, false, 'false', 'f', 'no', 'n', '0' 视为假。