- Home ›
- PostgreSQLの使い方 ›
- テーブルの作成 ›
- HERE
テーブルの作成
広告
では新規にテーブルを作成してみます。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 )
DBOnline