SQLでは、character型と character varying型の2つの主要な文字データ型を定義しています。 Postgresではこれらの型をサポートしていますが、 それらに加えてより一般的なtext型もサポートしています。 text型はcharacter varying型と違って、 フィールドサイズの明白な上限を必要としません。
文字列の構文に関しての詳細はSection 1.1.2.1、 使用可能な演算子と関数に関しての詳細はChapter 4を ご覧下さい。
Table 3-4. 文字データ型
型名 | データベース上のバイト数 | 注釈 | 説明 |
---|---|---|---|
character(n), char(n) | (4+n) バイト | SQL互換性あり | 固定長文字列(空白可) |
character varying(n), varchar(n) | (4+n) バイト | SQL互換性あり | 制限付の可変長文字列 |
text | (4+n) バイト | もっとも柔軟性がある | 制限無しの可変長文字列 |
Note: text型はSQL互換性ではありませんが、多くのRDBMSパッケージでも 採用されているものです。
この他にも、Postgresには2つの固定長文字列型が あります。name型という、内部カタログ名の格納のために 使用される型があり、この型は一般的な使用のためではありません。この長さは 現在32バイト(31文字とターミネーター)と定義されていますが、マクロの NAMEDATALENを使用して参照します。長さはコンパイル時に 設定されますが、特別な場合には変更することができます。デフォルトの 最大値は今後のリリースで変更があるかもしれません。"char"型 (引用符に注意)はchar(1)とは異なり、1バイトの格納スペースしか 使用しません。この型も内部カタログでpoor-man's 列挙型として使用されています。
Table 3-5. 特別な文字データ型
型名 | データベース上のバイト数 | 説明 |
---|---|---|
"char" | 1 バイト | 1文字の内部用データ型 |
name | 32 バイト | 31文字の内部用データ型 |