テーブルの操作
では、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 前へ
次へ データ型