列挙型またはENUMデータ型は、複数の値のリストから1つの値を選択するために使用されます。 特定の値は、ENUMデータ型のドロップダウンリストから選択されます。 ENUM値は静的で、一意であり、大文字と小文字が区別されます。 したがって、ユーザーはENUM値から任意の値を選択する必要があります。 どのENUM値とも一致しない入力値は、ENUMフィールドに挿入できません。 このデータ型は、テーブルに格納するのに4バイトかかります。 ENUMデータ型は、将来変更する必要のないタイプのデータを格納するのに役立ちます。 有効なデータのみを挿入するのに役立ちます。 このチュートリアルでは、PostgreSQLでのENUMデータ型の使用法を示しました。
前提条件:
このチュートリアルに示されているSQLステートメントを実行する前に、最新バージョンのPostgreSQLパッケージをLinuxオペレーティングシステムにインストールする必要があります。 次のコマンドを実行して、PostgreSQLをインストールして起動します。
$ 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フィールドのすべての値はここで有効です:
値
((‘farhad1278’、 「ファルハド・ホセイン」、 「123/7、ダンモンディダッカ。」、 ‘[email protected]’、 ‘アクティブ’)。、
((‘nira8956’、 「ニラ・アクター」、 「10/A、ジガトラダッカ。」、 ‘[email protected]’、 ‘非活性’)。、
((‘jafar90’、 「ジャファーイクバル」、 「564、ミルプールダッカ。」、 ‘[email protected]’、 ‘保留中’)。;
上記のクエリを実行すると、次の出力が表示されます。
次のINSERTクエリを実行して、レコードをに挿入します。 アカウント テーブルですが、ENUMフィールドに指定された値がENUMタイプに存在しません:
値
((‘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 タイプ 状態 追加 価値 「ブロックされた」 後 ‘非活性’;
ENUMデータ型を削除します。
ENUMタイプを削除する前に、ENUMタイプが使用されているテーブルを削除する必要があります。 次のコマンドを実行して、テーブルを削除します。
次のコマンドを実行して、テーブルを削除した後にENUMタイプを削除します。
結論:
このチュートリアルでは、PostgreSQLでENUMデータ型を作成、更新、および削除する方法と、PostgreSQLテーブルでのENUMデータ型の使用方法を示しました。これは、新しいPostgreSQLユーザーがENUMデータ型を適切に使用する目的を理解するのに役立ちます。
The post PostgreSQL列挙データ型 appeared first on Gamingsym Japan.