Bit strings are strings of 1's and 0's. They can be used to store
or visualize bit masks. There are two SQL bit types:
<type>bit(<replaceable>n</replaceable>)</type> and <type>bit
varying(<replaceable>n</replaceable>)</type>, where
<replaceable>n</replaceable> is a positive integer.
ビット列とは1と0のビットが連続したものです。
ビットマスクを格納したり可視化するために使用されます。
SQLのビット型には2つあります。
bit(
とn
)bit varying(
です。
ここでn
)n
は正の整数です。
<type>bit</type> type data must match the length
<replaceable>n</replaceable> exactly; it is an error to attempt to
store shorter or longer bit strings. <type>bit varying</type> data is
of variable length up to the maximum length
<replaceable>n</replaceable>; longer strings will be rejected.
Writing <type>bit</type> without a length is equivalent to
<literal>bit(1)</literal>, while <type>bit varying</type> without a length
specification means unlimited length.
bit
型のデータはn
で表される長さに正確に一致しなければなりません。
この長さより長いか短いビット列を格納しようとするとエラーになります。
bit varying
型のデータは最大n
までの可変長です。
最大長を超えるビット列は受け付けません。
長さ指定のないbit
データ型はbit(1)
データ型と同一で、長さ指定のないbit varying
データ型は無限長を意味します。
If one explicitly casts a bit-string value to
<type>bit(<replaceable>n</replaceable>)</type>, it will be truncated or
zero-padded on the right to be exactly <replaceable>n</replaceable> bits,
without raising an error. Similarly,
if one explicitly casts a bit-string value to
<type>bit varying(<replaceable>n</replaceable>)</type>, it will be truncated
on the right if it is more than <replaceable>n</replaceable> bits.
ビット列の値を明示的にbit(
にキャストすると、厳密にn
)n
ビットになるように、切り捨てられるか右側をゼロ詰めされ、エラーにはなりません。
同様に、ビット列の値を明示的にbit varying(
にキャストすると、ビット数がn
)n
を超える場合は右側が切り捨てられます。
Refer to <xref linkend="sql-syntax-bit-strings"/> for information about the syntax of bit string constants. Bit-logical operators and string manipulation functions are available; see <xref linkend="functions-bitstring"/>. ビット列定数に関する構文についての情報は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
A bit string value requires 1 byte for each group of 8 bits, plus 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in <xref linkend="datatype-character"/> for character strings). ビット列の値は8ビット毎に1バイト、さらにビット列長に応じた5または8バイトのオーバーヘッドが必要です。 (しかし、文字列に関する8.3で説明したように、長い値は圧縮または行外に移動する可能性があります。)