位串就是一串 1 和 0 的字串.它们可以用于存储和视觉化位掩码.
我们有两种类型的 SQL 位类型:
BIT(
x
)
和
BIT
VARYING(
x
)
; 这里的
x
是一个正整数.
BIT
类型的数据必须准确匹配长度
x
;
试图存储短些或者长一些的数据都是错误的.类型
BIT VARYING
是最长
x
的变长
类型;更长的串会被拒绝.没有长度的
BIT
等效于
BIT(1)
,没有长度的
BIT VARYING
意思是没有长度限制.
注意:
在
PostgreSQL
7.2 之前,
BIT
是在
在右边填充零的.这个行为现在已经为了和 SQL 标准兼容修改过来了.
要实现零填充的位串,我们可以使用联接操作符和函数
substring
的组合.
请参考
Section 1.1.2.2
获取有关位串常量的语法的信息.还有一些位逻辑操作符和位处理函数可用;
见
Chapter 4
.
Example 3-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 does not match type bit(3)
SELECT SUBSTRING(b FROM 1 FOR 2) FROM test;
|