本文介绍了位串类型的定义及相关语法。
位串就是一串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
位, 那么它的右边将被截断。
使用位串类型
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位的组需要一个字节,外加总共5个或8个字节,这取决于串的长度。
该文章对您有帮助吗?