位串是包含 1 和 0 的字符串。它们可用于存储或可视化位掩码。有两种 SQL 位类型:bit(
和 n
)bit varying(
,其中 n
)n
是一个正整数。
bit
类型的数据必须精确匹配长度 n
;尝试存储更短或更长的位串将导致错误。bit varying
数据是可变长度的,最多可达最大长度 n
;更长的字符串将被拒绝。不带长度的 bit
等同于 bit(1)
,而不带长度说明的 bit varying
则表示无限制长度。
如果显式地将一个位串值强制转换为 bit(
,它将被截断或在右侧用零填充,使其精确为 n
)n
位,而不会引发错误。同样,如果显式地将一个位串值强制转换为 bit varying(
,如果它超过 n
)n
位,它将被截断。
有关位串常量的语法信息,请参阅 第 4.1.2.5 节。提供了位逻辑运算符和字符串操作函数;请参阅 第 9.6 节。
示例 8.3. 使用位串类型
CREATE TABLE test (a BIT(3), b BIT VARYING(5)); INSERT INTO test VALUES (B'101', B'00'); INSERT INTO test VALUES (B'10', B'101');ERROR: bit string length 2 does not match type bit(3)
INSERT INTO test VALUES (B'10'::bit(3), B'101'); SELECT * FROM test;a | b -----+----- 101 | 00 100 | 101
一个位串值每 8 位需要 1 字节,加上 5 或 8 字节的开销,具体取决于字符串的长度(但长值可能会被压缩或移出,如 第 8.3 节 中对字符字符串的解释)。
如果您在文档中发现任何不正确、不符合您对特定功能的实际经验或需要进一步说明的内容,请使用 此表格 来报告文档问题。