您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

3.9. 位串类型

位串就是一串 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;