テーブルの作成

広告

では新規にテーブルを作成してみます。SQL文としては「CREATE TABLE」を使います。構文は下記のようになります。

CREATE [[GLOBAL | LOCAL] { TEMPORARY | TEMP }] TABLE table_name ( [
  { column_name data_type [DEFAULT default_expr] [column_constraint [ ... ]]
    | table_constraint
    | LIKE parent_table [{ INCLUDING | EXCLUDING } DEFAULTS] }
    [, ... ]
] )
[INHERITS ( parent_table [, ... ] )]
[WITH OIDS | WITHOUT OIDS]
[ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP }]
[TABLESPACE tablespace]

" -->
column_constraintには、次の構文が入ります。
" -->

[CONSTRAINT constraint_name]
{ NOT NULL | 
  NULL | 
  UNIQUE [USING INDEX TABLESPACE tablespace] |
  PRIMARY KEY [USING INDEX TABLESPACE tablespace] |
  CHECK (expression) |
  REFERENCES reftable [(refcolumn)] [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
    [ON DELETE action] [ON UPDATE action] }
[DEFERRABLE | NOT DEFERRABLE] [INITIALLY DEFERRED | INITIALLY IMMEDIATE]

" type="a" -->
また、table_constraintには、次の構文が入ります。
" type="a" -->

[CONSTRAINT constraint_name]
{ UNIQUE (column_name [, ... ] ) [USING INDEX TABLESPACE tablespace] |
  PRIMARY KEY (column_name [, ... ]) [USING INDEX TABLESPACE tablespace] |
  CHECK (expression) |
  FOREIGN KEY (column_name [, ... ]) REFERENCES reftable [(refcolumn [, ... ])]
    [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
    [ON DELETE action] [ON UPDATE action] }
[DEFERRABLE | NOT DEFERRABLE] [INITIALLY DEFERRED | INITIALLY IMMEDIATE]

上記では分かりにくいので、必要な部分だけ抜き出すと下記のようになります。

create table table_name
   (column_name1 column_type, column_name2 column_type, …);

最低限必要なものはテーブル名とテーブルに格納するカラム名とカラムのデータ型です。複数のカラムを持つテーブルであれば、カンマ(,)で区切って並べて記述していきます。

上記の場合であれば現在接続しているデータベースにテーブルを作成しますが、データベースを指定してテーブルを作成することも出来ます。

create table database_name.table_name
   (column_name1 column_type, column_name2 column_type, …);

では「sample」データベースに「test」と言う名前のテーブルを作成してみます。このテーブルにはinteger型の「id」というカラムとtext型の「name」というカラムの2つのカラムを持つようにしてみます。

テーブルの作成

作成されたかどうか確認しておきます。「¥dt」と入力して下さい。

テーブルの作成

「test」というテーブルがこのデータベース内に作成されていることが分かります。

( Written by Tatsuo Ikura )