もっと詳しく

列挙型またはENUMデータ型は、複数の値のリストから1つの値を選択するために使用されます。 特定の値は、ENUMデータ型のドロップダウンリストから選択されます。 ENUM値は静的で、一意であり、大文字と小文字が区別されます。 したがって、ユーザーはENUM値から任意の値を選択する必要があります。 どのENUM値とも一致しない入力値は、ENUMフィールドに挿入できません。 このデータ型は、テーブルに格納するのに4バイトかかります。 ENUMデータ型は、将来変更する必要のないタイプのデータを格納するのに役立ちます。 有効なデータのみを挿入するのに役立ちます。 このチュートリアルでは、PostgreSQLでのENUMデータ型の使用法を示しました。

前提条件:

このチュートリアルに示されているSQLステートメントを実行する前に、最新バージョンのPostgreSQLパッケージをLinuxオペレーティングシステムにインストールする必要があります。 次のコマンドを実行して、PostgreSQLをインストールして起動します。

$ sudo apt-get -y インストール postgresqlpostgresql-contrib

$ sudo systemctl start postgresql.service

次のコマンドを実行して、root権限でPostgreSQLにログインします。

ENUMデータ型の使用:

ブールデータ型のテーブルを作成する前に、PostgreSQLデータベースを作成する必要があります。 したがって、次のコマンドを実行して、’という名前のデータベースを作成します。testdb‘:

作成 データベース testdb;

データベースの作成後、次の出力が表示されます。

ENUMタイプを作成して読み取ります。

次のCREATEコマンドを実行して、次の3つの値を持つaccount_statusという名前のENUMタイプを作成します。

作成 タイプ アカウントのステータス なので 列挙型((‘保留中’ ‘非活性’ ‘アクティブ’)。;

次のSELECTコマンドを実行して、以前に作成されたENUMタイプの値を出力します。

選択する UNNEST((enum_range((ヌル:: アカウントのステータス)。)。 なので アカウントのステータス;

上記のコマンドを実行すると、次の出力が表示されます。

ENUMタイプの名前を変更します。

次のコマンドを実行して、ENUMタイプの名前をから変更します。 ‘account_status’から’status’:

ALTER タイプ アカウントのステータス 名前を変更 状態;

ENUMデータ型を使用してテーブルを作成します。

‘という名前のテーブルを作成しますアカウント‘現在のデータベースに3つのフィールドがあります。 最初のフィールド名は ユーザー名 これがの主キーです。 2番目のフィールド名は 名前 データ型は VARCHAR(30)。 3番目のフィールド名は 住所 データ型は 文章。 4番目のフィールド名は Eメール データ型は VARCHAR(50)。 5番目のフィールド名は a_status データ型は ENUM 以前に作成されました。

作成 テーブル アカウント ((

ユーザー名 VARCHAR ((20)。 主要な
名前 VARCHAR ((30)。
アドレステキスト
Eメール VARCHAR ((50)。
a_status 状態 )。;

上記のコマンドを実行すると、次の出力が表示されます。

テーブルにデータを挿入します。

次のINSERTクエリを実行して、アカウントテーブルに3つのレコードを挿入します。 ENUMフィールドのすべての値はここで有効です:

入れる の中へ アカウント ((ユーザー名 名前 住所 Eメール a_status)。


((‘farhad1278’ 「ファルハド・ホセイン」 「123/7、ダンモンディダッカ。」 ‘[email protected]’ ‘アクティブ’)。
((‘nira8956’ 「ニラ・アクター」 「10/A、ジガトラダッカ。」 ‘[email protected]’ ‘非活性’)。
((‘jafar90’ 「ジャファーイクバル」 「564、ミルプールダッカ。」 ‘[email protected]’ ‘保留中’)。;

上記のクエリを実行すると、次の出力が表示されます。

次のINSERTクエリを実行して、レコードをに挿入します。 アカウント テーブルですが、ENUMフィールドに指定された値がENUMタイプに存在しません:

入れる の中へ アカウント ((ユーザー名 名前 住所 Eメール a_status)。


((‘rifad76’ 「リファド・ハサン」 ’89、ガブトリダッカ。 ‘ ‘[email protected]’ 「ブロックされた」)。;

上記のクエリを実行すると、次の出力が表示されます。 ENUMタイプに存在しないENUM値を指定するための出力でエラーが発生しました。

次のSELECTコマンドを実行して、からすべてのレコードを読み取ります。 アカウント テーブル:

次のSELECTコマンドを実行して、 アカウント を含むテーブル 「アクティブ」または「保留中」 ENUMフィールドの値:

選択する * から アカウント どこ a_status=‘アクティブ’ また a_status=‘保留中’;

上記を実行すると、次の出力が表示されます 選択する クエリ:

ENUM値を変更します。

ENUMタイプの既存の値が変更された場合、 ENUM テーブルのフィールド値 ENUM 使用されているものも変更されます。

次を実行します ALTER 変更するコマンド ENUM 価値 「アクティブ」から「オンライン」:

ALTER タイプ 状態 名前を変更 価値 ‘アクティブ’ ‘オンライン’;

次のSELECTコマンドを実行して、 アカウント ENUM値を変更した後のテーブル:

上記のコマンドを実行すると、次の出力が表示されます。 ENUM値を含むテーブルに1つのレコードがありました。アクティブ‘。 出力は、ENUM値を変更した後、「アクティブ」値が「オンライン」に変更されたことを示しています。

既存のENUMデータ型に新しい値を追加します。

次のALTERコマンドを実行して、名前の付いたENUMタイプに新しいアイテムを追加します 状態

ALTER タイプ 状態 追加 価値 「ブロックされた」;

新しい値を追加した後にENUMタイプのリストを出力する次のSELECTクエリを実行します。

選択する UNNEST((enum_range((ヌル::: 状態)。)。 なので アカウントのステータス;

上記のクエリを実行すると、次の出力が表示されます。

新しい値は、既存の特定の値の前または後に挿入できます ENUM タイプ。 最初のALTERコマンドを実行して、新しい値を追加します。 値「非アクティブ」の前の「ブロック」。 2番目を実行します ALTER 新しい値を追加するコマンド、 値「非アクティブ」の後に「ブロック」。

ALTER タイプ 状態 追加 価値 「ブロックされた」 ‘非活性’;

ALTER タイプ 状態 追加 価値 「ブロックされた」‘非活性’;

ENUMデータ型を削除します。

ENUMタイプを削除する前に、ENUMタイプが使用されているテーブルを削除する必要があります。 次のコマンドを実行して、テーブルを削除します。

次のコマンドを実行して、テーブルを削除した後にENUMタイプを削除します。

結論:

このチュートリアルでは、PostgreSQLでENUMデータ型を作成、更新、および削除する方法と、PostgreSQLテーブルでのENUMデータ型の使用方法を示しました。これは、新しいPostgreSQLユーザーがENUMデータ型を適切に使用する目的を理解するのに役立ちます。

The post PostgreSQL列挙データ型 appeared first on Gamingsym Japan.