無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

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


powered by SEO.CUG.NET