位字符串是由 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 节 中针对字符串所述)。
如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或需要进一步澄清,请使用 此表单 报告文档问题。