従業員テーブルの作成
従業員の連絡先情報を格納するテーブルを設計し、適切なデータ型と制約を通じてデータの整合性を確保します。
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
カラムを正しく参照していることを確認します。
要件
contact_id
カラムは、自動インクリメントされる主キーである必要があります。
phone_number
カラムは一意である必要があります。
email
カラムは NULL
値を許可してはいけません。
employee_id
カラムは、employees
テーブルを参照する外部キーである必要があります。
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
制約を使用して、主キーを定義します。
UNIQUE
制約を使用して、phone_number
カラムに一意の値が含まれるようにします。
NOT NULL
制約を使用して、email
カラムに NULL
値が含まれないようにします。
FOREIGN KEY
制約を使用して、employee_contacts
テーブルの employee_id
カラムと employees
テーブルの employee_id
カラムの間に外部キー関係を作成します。
- SQL コマンドを実行する前に、
sudo -u postgres psql
を使用して PostgreSQL データベースに接続することを忘れないでください。