ビット列データ型

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 8章データ型 | 早送り | 次のページ

# 8.10. ビット列データ型

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

前のページ | ホーム | 次のページ
ネットワークアドレス型 | 上に戻る | テキスト検索に関する型