このトピックでは、バイナリ文字列で格納できる のバイナリデータ型について説明します。
| データ型 | 長さ | 説明 |
| BINARY | バイナリ文字列の長さと同じです。 | 固定長のバイナリ文字列。 文字列の長さは1〜8,300バイトである必要があります。 |
| BLOB | バイナリ文字列の長さが127バイト未満の場合は、実際のバイナリ文字列に1バイトを加えたものです。 バイナリ文字列の長さが127バイト以上の場合、その長さは実際のバイナリ文字列に4バイトを加えたものに等しくなります。 | 可変長のバイナリ文字列。 |
| VARBINARY | バイナリ文字列の長さと同じです。 | 可変長のバイナリ文字列。 文字列の長さは1〜8,300バイトである必要があります。 |
| BYTEA | 1バイトまたは4バイトにバイナリ文字列の実際の長さを加えたもの。 | 可変長のバイナリ文字列。 |
バイナリ文字列は、オクテットまたはバイトのシーケンスです。 バイナリ文字列は、次の2つの点で文字列と区別されます。
- バイナリストリングは、値がゼロのオクテットと、長さが32〜126バイトの範囲外の他の表示不可能なオクテットとを格納することができる。
- バイナリ文字列に対する操作は実際のバイトを処理しますが、文字列のエンコードと処理はローカル設定に依存します。
BYTEAタイプ
BYTEAタイプは、
hex形式とPostgreSQLエスケープ形式の2つの外部入出力形式をサポートしています。 16進フォーマットは、各バイトが2つの16進数字を含むようにバイナリデータをエンコードする。 最上位の4ビットは先頭にある。 バイナリ文字列は\xで始まります (エスケープ形式とは区別されます) 。エスケープ形式は、従来のPostgreSQL形式です。 ASCII文字列を使用してバイナリ文字列を表現し、ASCII文字として表現できないバイナリ文字列を特殊なエスケープシーケンスに変換します。 理論的には、この形式は文字が意味がある場合に便利です。 ただし、実際には、この形式ではバイナリ文字列と文字列の区別があいまいになります。 エスケープメカニズムは複雑です。 新しいアプリケーションでは、この形式を避けることを推奨します。