PostgreSQL 9.0.4 中文文档 | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 8. 数据类型 | Fast Forward | Next |
位串就是一串1和0的字符串。它们可以用于存储和直观化位掩码。 我们有两种SQL位类型:bit(n)和bit varying(n),这里的n是一个正整数。
bit类型的数据必须准确匹配长度n, 试图存储短些或者长一些的数据都是错误的。 bit varying类型数据是最长n的变长类型; 更长的串会被拒绝。写一个没有长度的bit 等效于bit(1),没有长度的vbit varying意思是没有长度限制。
Note: 如果我们明确地把一个位串值转换成bit(n), 那么它的右边将被截断或者在右边补齐零, 直到刚好n位,而不会抛出任何错误。类似地, 如果我们明确地把一个位串数值转换成bit varying(n), 如果它超过了n位,那么它的右边将被截断。
请参考Section 4.1.2.5获取有关位串常量的语法信息。 还有一些位逻辑操作符和位处理函数可用;参见Section 9.6。
Example 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
位字符串值需要1字节,每组8位,增加5或8字节的开销取决于字符串的长度(Section 8.3中有相关解释)。