テーブルの操作

 では、psql上から実際にテーブルを操作して見ましょう。テーブルを作成したり削除するには、SQL文を使います。まず、テーブルの作成から見てみましょう。

テーブルの作成

 テーブルを作るには、SQL文のCREATE TABLE文を使います。書式は以下のようになります。

CERATE TABLE テーブル名 (
    カラム名 データ型 [ 制約 ],
    ..............
    [ PRIMARY KEY (カラム名,...) ]
) ;

*括弧[ ]は、省略可能の意味です。

制約には、以下のような制約の種類を与えます。

[NOT NULL制約]

NULL(ゼロ)を許さないと言う制約です。

▼例

CREATE TABLE test (i int not null);

[UNIQUE制約]

重複しない値を持つと言う制約です。ただし、NULL値は制約の対象外です。

▼例

CREATE TABLE test (i int unique);

[check制約]

任意の論理式で制約条件を記述できます。

▼例

CREATE TABLE test (i int check (i in ( '男', '女' ) ) );

[主キー制約]

主キーを設定する事ができます。

▼例

CREATE TABLE test (i int primary key);

CREATE TABLE test (i int, j int, PRIMARY KEY ( i, j ) );

外部キー

 PostgreSQL7.0から加わった新機能の一つに外部キーがあります。外部キーとは、ある表の列が別の表の主キーとなっている場合の事を言います。

 例えば、従業員テーブル「mem」の所属コード「mem_code」が、所属テーブル「grp」の主キーとなっている場合、従業員テーブル「mem」と所属テーブル「grp」は、mem_codeで関連付けられていると言えます。このような関係は、テーブル作成時に外部キーを使って宣言する事ができます。宣言方法は、以下のようになります。

CREATE TABLE grp (
  mem_code int primary key,
  mem_name text
);
 
CREATE TABLE mem (
  mem_name text,
  mem_code,
  CONSTRAINT grpconstraint FOREIGN KEY (mem_code)
  REFERENCES grp
);

 尚、外部キーを設定すると、従業員テーブル「mem」の所属コード「mem_code」は、所属テーブル「grp」から削除出来ません。又、所属テーブル「grp」にない所属コード「mem_code」を、従業員テーブル「mem」で利用する事は出来ません。

デフォルト値

 insert文を実行する時、フィールドと値を明示しないとそのフィールドにはnullが入りますが、デフォルト値を設定する事で、null以外の別の値を入れる事ができます。

▼例

CREATE TABLE test (i int, def_no int default 1);

CREATE TABLE test (i int, up_date timestamp default text 'now');

テーブルの削除

 テーブルを削除するには、SQL文のDROP TABLE文を使います。書式は以下のようになります。

DROP TABLE テーブル名;

テーブルの表示

 テーブルを表示するには、表示させたい内容によって数種類のコマンドがあります。以下にそれらを一覧で示します。

\d データベースに格納されているオブジェクトを確認する。
\dt テーブルだけを表示させる。
\d テーブル名 テーブルの中身も確認する。

データベースとpsql 前へ

HOME

次へ データ型