テーブルの作成

前回はpdAdminを使用して新規データベースを作成しました。今回は、そのデータベースにテーブルを作成する手順について見ていきます。

ここではサンプルとして以下の列を持つstaffテーブルを作成します。

列名 データ型 制約
id INTEGER PRIMARY KEY
name TEXT NOT NULL
age INTEGER CHECK(age > 0)

スタッフの情報を格納するテーブルです。列には「id」「name」「age」を持ち、それぞれ、スタッフID、スタッフの名前、年齢を格納します。データ型はそれぞれ数字、文字列、数字とします。

また、各列の制約として、「id」にはPRIMARY KEY(主キー)制約を持たせます。PRIMARY KEY制約は、列内で重複する値の格納を許可せず、かつ、必ずデータを格納しなければならないという制約です。

「name」には必ずデータを格納しなければならないことを示すNOT NULL制約を、「age」にはこの列には0より大きな値しか入らないという制約を持たせます。

テーブルの作成

早速、上記で定義したテーブルをpdAdminを使用して実際に作成します。

pgAdminのオブジェクトブラウザから前回作成した「sampleDB」データベースを選択し、「スキーマ」→「public」とツリーを展開します。その中に「テーブル」という項目があるので、右クリックし、コンテキストメニューから「新しいテーブル」をクリックします。
オブジェクトブラウザ

すると、「新しいテーブル」ダイアログボックスが表示されます。
「新しいテーブル」ダイアログ

上図ダイアログボックスで作成するテーブルの設定を定義します。、ここでは必要最低限な設定項目だけ見ていきましょう。

項目 説明
プロパティ 名前 テーブルの名前を指定。
オーナー テーブルの所有者を指定。未入力の場合はpgAdminへの接続ユーザーとなる。
コメント このテーブルに関する任意のコメントを入力。
定義 テーブル空間 テーブルを配置するテーブル空間を指定。未入力の場合はpg_defaultが適用される。

列の作成

続いて、列を作成します。「列」タブをクリックします。
「列」タブ
右下にある「追加」ボタンをクリックします。すると、「新しい列」ダイアログが表示されます。
「新しい列」ダイアログ

このダイアログボックスにて1列ずつ作成していきます。データ型は上記で取り決めた型を指定してください。
「id」列作成

上図では「id」列を作成しています。「OK」ボタンを押下すると、「新しいテーブル」ダイアログに戻ります。同じように「name」「age」列を作成します。

なお、「name」列に関してはNOT NULL制約を付与するため、「定義」タブをクリックします。
NOT NULL制約

「NOT NULL」チェックボックスにチェックを入れます。「OK」ボタンを押下し、「新しいテーブル」ダイアログに戻ります。
「新しいテーブル」ダイアログ

制約の追加

続いて、「id」「age」列に対して制約を付与します。「制約」タブをクリックします。
主キーの設定

画面下のプルダウンメニューで「主キー」が選択されいることを確認し、「追加」ボタンをクリックします。すると、「新しい主キー」ダイアログが表示されます。
「新しい主キー」ダイアログ

「列」欄に「id」を選択し、「追加」ボタンをクリックします。続けて、「OK」ボタンをクリックします。

次に「age」列の制約を設定します。「新しいテーブル」ダイアログの「制約」タブから画面下のプルダウンメニューで「チェック」を選択し、「追加」ボタンをクリックします。「新しいチェック」ダイアログが表示されます。
「新しいチェック」ダイアログ

「定義」タブの「チェック」欄に「age > 0」と入力し、「OK」ボタンをクリックします。

もう一度、「新しいテーブル」ダイアログの「プロパティ」タブに戻り、「名前」欄等を以下のように入力します。
プロパティ

最後に「OK」ボタンを押下します。

以上でテーブルの作成は完了です。

テーブルが正常に作成されるとオブジェクトブラウザにテーブルが追加されます。
pgAdmin

「staff」という名前のテーブルが確認できます。