従業員テーブルの作成
適切なデータ型と制約を使用してデータの整合性を確保しながら、従業員の連絡先詳細を保存するためのテーブルを設計してください。
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(NOT NULL)のカラムを含めてください。
employee_id カラムが、employees テーブルの employee_id カラムを正しく参照していることを確認してください。
要件
contact_id カラムは、自動インクリメントされる主キー(Primary Key)であること。
phone_number カラムは、一意(Unique)であること。
email カラムは、NULL 値を許可しない(Not Null)こと。
employee_id カラムは、employees テーブルを参照する外部キー(Foreign Key)であること。
psql を使用して SQL コマンドを実行すること。
例
employees テーブルと employee_contacts テーブルは、以下のような構造になります。
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 制約を使用します。
phone_number カラムに重複した値が入らないようにするには、UNIQUE 制約を使用します。
email カラムに空の値を許可しないようにするには、NOT NULL 制約を使用します。
employee_contacts テーブルの employee_id と employees テーブルの employee_id の間にリレーションシップを作成するには、FOREIGN KEY 制約を使用します。
- SQL コマンドを実行する前に、
sudo -u postgres psql を使用して PostgreSQL データベースに接続することを忘れないでください。