- 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 )