PostgreSQL で従業員テーブルを作成する

PostgreSQLPostgreSQLBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチャレンジでは、PostgreSQL で employee_contacts テーブルを設計および作成し、従業員の連絡先情報を保存します。適切なデータ型と制約を通じてデータの整合性を確保します。employees テーブルがすでに存在する、事前構成された環境で作業を行います。

あなたのタスクは、psql を使用して postgres ユーザーとして PostgreSQL データベースに接続し、SQL コマンドを直接実行して employee_contacts テーブルを作成することです。テーブルには、contact_id (主キー、自動インクリメント)、employee_id (employees テーブルを参照する外部キー)、phone_number (一意)、および email (NULL 不可) のカラムを含める必要があります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL postgresql(("PostgreSQL")) -.-> postgresql/PostgreSQLGroup(["PostgreSQL"]) postgresql/PostgreSQLGroup -.-> postgresql/table_init("Create Basic Table") postgresql/PostgreSQLGroup -.-> postgresql/col_text("Add Text Column") postgresql/PostgreSQLGroup -.-> postgresql/key_primary("Set Primary Key") subgraph Lab Skills postgresql/table_init -.-> lab-551115{{"PostgreSQL で従業員テーブルを作成する"}} postgresql/col_text -.-> lab-551115{{"PostgreSQL で従業員テーブルを作成する"}} postgresql/key_primary -.-> lab-551115{{"PostgreSQL で従業員テーブルを作成する"}} end

従業員テーブルの作成

従業員の連絡先情報を格納するテーブルを設計し、適切なデータ型と制約を通じてデータの整合性を確保します。

employees テーブルはすでに作成されています。見当たらない場合は、次のコマンドを使用して作成できます。

CREATE TABLE employees (
    employee_id SERIAL PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL
);

タスク

  • PostgreSQL に employee_contacts という名前のテーブルを作成します。テーブルには、contact_id (主キー)、employee_id (employees テーブルを参照する外部キー)、phone_number (一意)、および email (NULL 不可) のカラムを含める必要があります。
  • employee_id カラムが employees テーブルの employee_id カラムを正しく参照していることを確認します。

要件

  1. contact_id カラムは、自動インクリメントされる主キーである必要があります。
  2. phone_number カラムは一意である必要があります。
  3. email カラムは NULL 値を許可してはいけません。
  4. employee_id カラムは、employees テーブルを参照する外部キーである必要があります。
  5. psql を使用して SQL コマンドを実行します。

employees テーブルと employee_contacts テーブルは、次の構造を持つ必要があります。

Structure of employees and contacts tables
                                          Table "public.employees"
   Column    |         Type          | Collation | Nullable |                    Default
-------------+-----------------------+-----------+----------+------------------------------------------------
 employee_id | integer               |           | not null | nextval('employees_employee_id_seq'::regclass)
 first_name  | character varying(50) |           |          |
 last_name   | character varying(50) |           |          |
Indexes:
    "employees_pkey" PRIMARY KEY, btree (employee_id)
Referenced by:
    TABLE "employee_contacts" CONSTRAINT "employee_contacts_employee_id_fkey" FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
                                      Table "public.employee_contacts"
     Column     |          Type          | Collation | Nullable |                     Default
----------------+------------------------+-----------+----------+--------------------------------------------------
 contact_id     | integer                |           | not null | nextval('employee_contacts_contact_id_seq'::regclass)
 employee_id    | integer                |           |          |
 phone_number   | character varying(20)  |           |          |
 email          | character varying(100) |           | not null |
Indexes:
    "employee_contacts_pkey" PRIMARY KEY, btree (contact_id)
    "employee_contacts_phone_number_key" UNIQUE CONSTRAINT, btree (phone_number)
Foreign-key constraints:
    "employee_contacts_employee_id_fkey" FOREIGN KEY (employee_id) REFERENCES employees(employee_id)

ヒント

  • CREATE TABLE ステートメントを使用してテーブルを作成します。
  • contact_id カラムに SERIAL データ型を使用して、一意の整数値を自動的に生成します。
  • PRIMARY KEY 制約を使用して、主キーを定義します。
  • UNIQUE 制約を使用して、phone_number カラムに一意の値が含まれるようにします。
  • NOT NULL 制約を使用して、email カラムに NULL 値が含まれないようにします。
  • FOREIGN KEY 制約を使用して、employee_contacts テーブルの employee_id カラムと employees テーブルの employee_id カラムの間に外部キー関係を作成します。
  • SQL コマンドを実行する前に、sudo -u postgres psql を使用して PostgreSQL データベースに接続することを忘れないでください。
✨ 解答を確認して練習

まとめ

このチャレンジでは、指定された環境内で employee_contacts という名前の PostgreSQL テーブルを作成することが課題です。これには、contact_id (主キー、自動インクリメント)、employee_id (employees テーブルを参照する外部キー)、phone_number (一意)、および email (NULL 不可) のカラムを持つテーブル構造を設計することが含まれます。

解決策として、psql を使用して postgres ユーザーとして PostgreSQL データベースに接続し、必要な SQL コマンドを直接実行してテーブルとその制約を定義し、データの整合性とテーブル間の適切な関係を確保する必要があります。