8.6. 布尔类型

PostgreSQL 提供了标准的 SQL 类型boolean;参见Table 8.19boolean类型可以具有几种状态:“ true”,“ false”和第三个状态“ unknown”(由 SQL 空值表示)。

表 8.19. 布尔数据类型

NameStorage SizeDescription
boolean1 byte正确或错误状态

布尔常量可以在 SQL 查询中用 SQL 关键字TRUEFALSENULL表示。

类型boolean的数据类型 Importing 函数接受“ true”状态的以下字符串表示形式:

true
yes
on
1

这些表示为“ false”的状态:

false
no
off
0

这些字符串的唯一前缀也可以接受,例如tn。前导或尾随空格将被忽略,大小写无关紧要。

类型boolean的数据类型输出函数始终发出tf,如Example 8.2所示。

实施例 8.2. 使用boolean类型

CREATE TABLE test1 (a boolean, b text);
INSERT INTO test1 VALUES (TRUE, 'sic est');
INSERT INTO test1 VALUES (FALSE, 'non est');
SELECT * FROM test1;
 a |    b
---+---------
 t | sic est
 f | non est

SELECT * FROM test1 WHERE a;
 a |    b
---+---------
 t | sic est

关键字TRUEFALSE是在 SQL 查询中编写布尔常量的首选(兼容 SQL)方法。但是,您也可以按照Section 4.1.2.7中描述的通用字符串 Literals 常量语法(例如'yes'::boolean)使用字符串表示形式。

请注意,解析器会自动理解TRUEFALSE的类型为boolean,但是对于NULL而言并非如此,因为它可以具有任何类型。因此,在某些情况下,您可能必须将NULL强制转换为boolean,例如NULL::boolean。相反,在解析器可以推断 Literals 必须为boolean类型的上下文中,可以从字符串 Literals 布尔值中省略强制类型转换。