↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 数据类型 / 布尔值

boolean

逻辑布尔值(真/假)

当前查看 PostgreSQL 18.6。

PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。

定义

SQL 名称与别名: bool

逻辑布尔值(真/假)

boolean
目录名称
pg_catalog.bool
类型 OID
16
类型种类
基础类型
声明长度
1 字节
存储策略
plain
输入函数
boolin
输出函数
boolout
手册中的声明
boolean
存储大小
1 字节
手册说明
状态为真或假

中文手册

阅读完整手册章节

阅读来源定义

8.6. 布尔类型

PostgreSQL提供标准的SQL类型boolean,参见表 8.19。boolean可以有多个状态:“true(真)”、“false(假)”和第三种状态“unknown(未知)”,未知状态由SQL空值表示。

表 8.19. 布尔数据类型

名字 存储大小 说明
boolean 1 字节 状态为真或假

在 SQL 查询中,布尔常量可以用 SQL 关键字 TRUE、FALSE 和 NULL 表示。

boolean 类型的输入函数接受以下表示“真”状态的字符串:

真
是
on
1

以及以下表示“假”状态的字符串:

假
否
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 查询中书写布尔常量时,首选符合 SQL 标准的 TRUE 和 FALSE 关键字。也可按第 4.1.2.7 节介绍的通用字符串字面量语法使用字符串表示,例如 'yes'::boolean。

注意,语法分析器会自动将 TRUE 和 FALSE 理解为 boolean 类型,但 NULL 不会,因为它可以是任意类型。因此在某些上下文中,你可能需要显式将 NULL 转换为 boolean,例如 NULL::boolean。反过来,如果语法分析器能够判定某个字符串字面量必定是 boolean 类型,则也可以省略这类转换。

系统目录属性

此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。

oid
16
descr
boolean, format 't'/'f'
typacl
_null_
typlen
1
typelem
0
typname
bool
typsend
boolsend
typtype
b
typalign
c
typarray
0
typbyval
t
typdelim
','
typinput
boolin
typmodin
-
typndims
0
typowner
POSTGRES
typrelid
0
typmodout
-
typoutput
boolout
typtypmod
-1
typanalyze
-
typdefault
_null_
typnotnull
f
typreceive
boolrecv
typstorage
p
typbasetype
0
typcategory
B
typcollation
0
typisdefined
t
typnamespace
pg_catalog
typsubscript
-
typdefaultbin
_null_
array_type_oid
1000
typispreferred
t
array_type_name
_bool

类型转换 6

与此类型相关的显式 pg_cast 记录。PostgreSQL 还支持 pg_cast 之外的类型转换,缺少记录不能证明转换不可能。

源类型目标类型转换上下文转换方式函数
int4bool显式函数bool(int4)
boolint4显式函数int4(bool)
booltext赋值函数text(bool)
boolvarchar赋值函数text(bool)
boolbpchar赋值函数text(bool)
jsonbbool显式函数bool(jsonb)

运算符重载 6

每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。

运算符左操作数右操作数返回类型含义实现函数
<boolboolbool小于boollt
>boolboolbool大于boolgt
<>boolboolbool不等于boolne
=boolboolbool等于booleq
<=boolboolbool小于等于boolle
>=boolboolbool大于等于boolge

操作符类 2

声明输入类型与此类型相符的操作符类。多态操作符类、类型转换和表达式索引还可能提供其他索引路径;不能仅凭此表判断是否支持索引。

操作符类索引方法输入类型操作符族默认存储类型
bool_opsbtreeboolbtree/bool_ops是与输入类型相同
bool_opshashboolhash/bool_ops是与输入类型相同

版本比较

PostgreSQL 17.11 → 18.6。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。

这两个样本的系统目录和结构化属性没有变化。

这些构建的文档也有差异,请查看对应版本的手册定义。

文档与源码

构建
18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

相关条目

全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。