ビット列とは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で説明したように、長い値は圧縮または行外に移動する可能性があります。)