このセクションでは、我々は無制限の長さの文字を格納することができますPostgreSQL varcharデータ型の動作を理解しようとしています。 また、Varcharデータ型とスペースの例も紹介します。

PostgreSQLのVarcharデータ型とは?

PostgreSQLでは、Varcharデータ型は無限の長さの文字を保持するために使用されます。 つまり、PostgreSQLのVarcharデータ型は、VARCHARと表記される文字データ型を使用していると言えます。

  • PostgreSQLでは、VarcharはVarchar (n)として示され、nは文字の長さの上限を示すために使用されます。 nが記述されていない場合、デフォルトは無限の長さを持つVarcharです。
  • Varchar(n)で指定した列に長い文字列を取得しようとすると、PostgreSQLは出力でエラーになります。
  • それでも、追加の文字がすべてスペースであれば例外で、最大長(n)までスペースを切り詰めて文字列を格納します。
  • PostgreSQL は、Varchar データ型の長さ指定子を定義した場合、または Varchar(n) 列に n 文字以上挿入しようとした場合、チェックしてエラーを発生させます。
  • 注意: varchar データ型は可変長文字列で、特殊文字、数字、文字を運ぶことが可能です。

    PostgreSQL Varcharデータ型の構文

    PostgreSQL Varcharデータ型の構文は以下の通りです。

    このために、CREATEコマンドを使用してVarchar_demoテーブルという新しいテーブルを作成し、INSERTコマンドを使用していくつかの値を挿入してみます。

    我々は、CREATEコマンドを使用して、組織データベースにVarchar_demoテーブルを作成する:

    出力

    上記のコマンドを正常に実行すると、Varchar_demoテーブルは、次の画像に示すように作成されています:

    一度Varchar_demoテーブルが生成されて、我々はそれにいくつかの値の挿入は、INSERTコマンドを使用すること。

    出力

    上記のコマンドを実行した後、以下の出力が得られます。PostgreSQLは「値が長すぎるために文字が変化するタイプ(1)」というエラーを発行します。

    つまり、P列のデータ型はVARCHAR(1)であり、以下のスクリーンショットで観察できるように、特定の列に3文字の文字列を挿入しようとしているところです。

    上記のエラーを解決するには、以下のコマンドを使用します。

    Output

    上記のコマンドを実行すると、PostgreSQLはQ列に対して同様のエラーを再発行し、これはQ列のデータ型がVARCHAR(10)であることを意味しています。

    したがって、上記の両方のエラーを解決するには、以下のコマンドを使用します:

    Output

    上記のコマンドを実行すると、次の結果が得られます。

    上のスクリーンショットでわかるように、P列とQ列の値を正常に挿入しました。

    Varchar_demoテーブルの値を作成し挿入した後、SELECTコマンドを使用してVarchar_demoテーブルのすべての行を返します:

    Output

    上記のコマンドを実装すると、列Pおよび列Qの両方の値がVarchar_demoテーブルに正常に入力されたことが分かる次の結果が表示されます。

    例2

    Varcharデータ型を詳細に学ぶために、もう1つの例を見てみましょう。 CREATEコマンドの助けを借りてVarchar_demo2として1つの新しいテーブルを作成し、INSERTコマンドを使用していくつかの値を挿入します。

    CREATE コマンドを使用して Organization である上記と同様のデータベースに Varchar_demo2 を作成します。

    Output

    Varchar_demo2 テーブルは、以下のスクリーンショットに示すように、上記のコマンドを実行した後に正常に作成されています:

    Varchar_demo2 テーブルを生成したら、その中に INSERT コマンドを使用していくつかの値を挿入することができます。

    Output

    上記のコマンドを実装した後。 PostgreSQLは “the value is too long for type Character (1) “というエラーメッセージを出します。

    PostgreSQL VARCHARとスペースの例

    PostgreSQL は varchar 値の格納時にスペースを拡張せず、Varchar 値を格納または復元する際にも末尾のスペースを取ります。

    このため、我々はそれを理解するために以下の例を参照してください。Insertコマンドで、我々は上記の例で作成したVarchar_demo2テーブルのName列に値を追加します:

    Output

    上記のコマンドを実行すると、我々は次の結果を得るでしょう:値はVarchar_demo2テーブルに正常に挿入されました。

    Varchar_demo2 テーブルの値を作成し挿入した後、SELECT コマンドを使用して Varchar_demo2 テーブルから値を取得します:

    Output

    上記のコマンドを実装した後、PostgreSQL では列長を増やさないので、長さのカウントで最後のスペースを含む、以下の結果を取得することができます。

    列長を超える末尾のスペースを含む Varchar 値を挿入しようとすると、PostgreSQL は末尾のスペースを切り詰めます。 また、PostgreSQL は警告を発生させます。

    Output

    On executing the above command, we will get the following result:

    In the above command, the inserted value length is six into the Name column. そして、値はまだ列に挿入されます。 しかし、PostgreSQLは値を追加する前に最後のスペースをカットします。

    Insertコマンドが正常に追加されている次のコマンドのヘルプで確認することができます。

    Difference between PostgreSQL CHAR and PostgreSQL VARCHAR Data Type

    PostgreSQL CHARおよびVARCHARデータ型は、両方ともASCII文字に従います。

    PostgreSQL CHARデータ型 PostgreSQL VARCHARデータ型
    PostgreSQL は Char データ型に対して静的メモリ割り当てをサポートしました。
    PostgreSQLはVarcharデータ型に対して動的なメモリ割り当てをサポートします。
    Charデータ型はCharacterとも呼ばれます。 Varcharデータ型はVariable Characterとも呼ばれます。
    Charデータ型は255文字以上を保持できません。 Varcharデータ型は65535文字まで保持できます。
    Charデータ型は固定長の値を格納し、テーブル作成時にそれを表現します。 Varcharデータ型は1または2バイト長のプレフィックスを持つ可変長の文字列で値を格納します。
    指定された長さを格納するために末尾にスペースを詰めることができます。 格納するときに、スペースを含む任意の文字でパディングすることはできません。

    概要

    PostgreSQL Varcharデータ型のセクションでは、以下のトピックを学びました。

    • Varcharデータ型の用途は、長さの異なる文字型に対してです。
    • 列に挿入または更新する前に文字列(n)の長さを確認したい場合、Varchar(n)データ型を使用します。
    • PostgreSQL Varcharデータ型とスペースを使用します。

    コメントを残す

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