PostgreSQL 提供标准SQL类型 boolean
;请参阅 表 8.19。boolean
类型可能具有以下几种状态:“true”、“false” 以及第三种状态 “unknown”,由空值表示。SQL空值。
表 8.19。布尔数据类型
名称 | 存储大小 | 说明 |
---|---|---|
布尔 |
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
在 SQL 查询中编写布尔常量,首选关键字 TRUE
和 FALSE
(SQL-compliant)。但是也可以通过遵循 第 4.1.2.7 节 中描述的通用字符串常量语法来使用字符串表示,例如 'yes'::boolean
。
请注意,解析器自动理解 TRUE
和 FALSE
的类型为 boolean
,但对于 NULL
并非如此,因为 NULL
可能具有任何类型。因此在某些上下文中,可能需要显式地将 NULL
强制转换为 boolean
,例如 NULL::boolean
。相反,在解析器可以推断出该文字必须为类型 boolean
的上下文中,可以从字符串文字布尔值中省略强制转换。