登录
8.6. 布尔类型#
PostgreSQL提供标准SQL类型boolean
;请参见表 8.19。boolean
类型可以有几种状态:“true”、“false”和第三种状态“unknown”,由SQLnull 值表示。
表 8.19. 布尔数据类型
名称 | 存储大小 | 说明 |
---|---|---|
boolean | 1 字节 | true 或 false 状态 |
布尔常量可以用 SQL 关键字TRUE
、FALSE
和NULL
在 SQL 查询中表示。
类型boolean
的数据类型输入函数接受这些字符串表示形式,表示“true”状态
true |
yes |
on |
1 |
以及这些表示形式表示“false”状态
false |
no |
off |
0 |
这些字符串的唯一前缀也可以接受,例如t
或n
。忽略前导或尾随空白,大小写无关紧要。
类型boolean
的数据类型输出函数始终会发出t
或f
,如示例 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
关键字TRUE
和FALSE
是在 SQL 查询中编写布尔常量的首选(SQL兼容)方法。但是,你也可以使用字符串表示形式,方法是遵循第 4.1.2.7 节中描述的通用字符串常量语法,例如'yes'::boolean
。
请注意,解析器会自动理解TRUE
和FALSE
是boolean
类型,但NULL
则不然,因为它可以是任何类型。因此,在某些情况下,你可能必须将NULL
显式转换为boolean
,例如NULL::boolean
。相反,在解析器可以推断出该文字必须是boolean
类型的上下文中,可以从字符串文字布尔值中省略转换。