ビット列とは1と0のビットが連続したものです。
ビットマスクを格納したり可視化するために使用されます。
SQLのビット型には2つあります。
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. 文字型で説明したように、長い値は圧縮または行外に移動する可能性があります。)