文字データ型

SQL92 では、 char 型と varchar 型という主要な二つの文字データ型を定義して います。 Postgres はどちらもサポート済みです が、それらに加えより汎用性の高い text 型も持って いて、それは varchar 型と違ってフィールドの最大文字数を指定する必 要がありません。

Table 3-5. Postgres 文字データ型

文字データ型記憶領域推奨説明
char1 byteSQL92 互換1バイト文字
char(n)(4+n) bytesSQL92 互換固定長文字列。空白文字で補填される。
text(4+x) bytes最良の選択可変長文字
varchar(n)(4+n) bytesSQL92 互換文字数制限付き可変長文字

あともう1種類、固定長文字列の name 型という文字デー タ型が存在しますが、それは Postgres 内 部で使用する名前の為の特別な型で、一般ユーザに使用される事を意図 されてはいません。現状、これは32文字として定義されていますが、 NAMEDATALEN を使って確認すべきだと思います。データサイズはコンパ イル時に設定されますし、次のバージョンでは変更されるているかも知 れません。

Table 3-6. Postgres 特別な文字データ型

文字データ型記憶領域説明
name32 bytes32文字固定長、システム内部で使用