概要:このチュートリアルでは、CHARVARCHARTEXTを含む PostgreSQL の文字データ型について学び、テーブルに適した文字型を選択する方法を学びます。 CHARACTER(n) または CHAR(n)CHARACTER VARYINGING(n) または VARCHAR(n)、そして TEXTnは正の整数です)。

次の表はPostgreSQLの文字型を説明したものです。

文字型 説明
CHARACTER VARYING(n)VARCHAR(n) variable-length with length limit
CHARACTER(n)の順となりました。 CHAR(n) 固定長、空白パディング
TEXT, VARCHAR 可変長無制限

CHAR(n)およびVARCHAR(n) はともに最大n文字まで格納可能です。 n文字を超える文字列を格納しようとすると、PostgreSQLはエラーを発行します。

ただし、例外として、過剰な文字がすべて空白である場合、PostgreSQLは空白を最大長(n)に切り詰めて格納します。

文字列が明示的にCHAR(n)またはVARCHAR(n)にキャストされた場合、PostgreSQLはテーブルに挿入する前に文字列をn文字に切り捨てます。

TEXTデータ型は無制限に長い文字列を格納できます。データ型に対してn整数を指定しない場合、TEXTデータ型のような動作をします。 VARCHAR (サイズ n なし) と TEXT の性能は同じです。

VARCHAR データ型に長さ指定子を指定する唯一の利点は、n 文字以上の文字列を VARCHAR(n) 列に挿入しようとすると PostgreSQL がエラーを出すことです。

VARCHARとは異なり、長さ指定子なしのCHARACTERまたはCHARCHARACTER(1)またはCHAR(1)と同じです。

他のデータベースシステムとは異なり、PostgreSQLでは、3種類の文字型で性能に差はありません。

PostgreSQLの文字型の例

例を見て、CHARVARCHARTEXTデータ型がどのように機能するかを見てみましょう。

まず、character_testsという新しいテーブルを作成します。

Code language: SQL (Structured Query Language) (sql)

次に、character_testsテーブルに新しい行を挿入します。

Code language: SQL (Structured Query Language) (sql)

PostgreSQLはエラーを発行しました。

Code language: SQL (Structured Query Language) (sql)

これはx列のデータ型がchar(1)なので、3文字のストリングをこの列に対して挿入しようとしたためです。 修正しましょう。

Code language: SQL (Structured Query Language) (sql)

PostgreSQL は別のエラーを発行します:

Code language: Shell Session (shell)

これは、varchar(10) データ型を持つ y 列に 10 文字を超える文字列を挿入しようとしたためです。

次のステートメントは、character_tests テーブルに新しい行を正常に挿入します。

Code language: SQL (Structured Query Language) (sql)
Code language: SQL (Structured Query Language) (sql)
Code language: Shell Session (shell)

概要

  • PostgreSQL は CHARVARCHAR、および TEXT データ型をサポートします。 CHAR は固定長の文字型で、VARCHARTEXT は可変長の文字型です。
  • 列に挿入または更新する前に文字列 (n) の長さを検証したい場合は、VARCHAR(n) を使用してください。
  • VARCHAR (長さ指定子なし) と TEXT は同等です。
  • Was this tutorial helpful?
  • YesNo

コメントを残す

メールアドレスが公開されることはありません。