テーブルを作成する(CREATE TABLE)

PostgreSQL で新しいテーブルを作成するには CREATE TABLE コマンドを使用します。ここでは PostgreSQL で新しいテーブルを作成する方法について解説します。

(Last modified: )

CREATE TABLEの基本書式

テーブルを作成するには CREATE TABLE コマンドを使います。書式は非常に長いので一部抜粋すると次のようになります。

CREATE TABLE [ IF NOT EXISTS ] table_name (
  column_name data_type [, ... ]
)

テーブル名( table_name )のテーブルを新しく作成します。テーブルの中に作成するカラムに関してカラム名( column_name )とデータ型( data_type )を指定します。複数のカラムが含まれる場合は、カンマ(,)で区切り続けて記述してください。

テーブルはスキーマの中に作成しますので、作成するテーブル名の指定は スキーマ名.テーブル名 の形式で行います。スキーマ名を省略した場合は現在のスキーマに作成されます。(詳しくは「スキーマ検索パスを設定する」を参照されてください)。

現在のスキーマにテーブルを作成する

それでは実際にテーブルを作成してみます。最初にテーブルを作成するデータベースに接続してください。今回は mydb データベースにテーブルを作成します。

現在のスキーマにテーブルを作成する(1)

最初にスキーマを指定せずにテーブルを作成します。 current_schema を使って現在のスキーマを取得すると public スキーマとなっているので、スキーマを指定せずにテーブルを作成する場合は public スキーマ内に作成されます。

select current_schema;

現在のスキーマにテーブルを作成する(2)

テーブルを作成します。作成するテーブル名は mybook としました。次のように実行してください。

create table mybook (
  id integer, 
  name varchar(10)
);

現在のスキーマにテーブルを作成する(3)

テーブルが作成されました。このテーブルには id と name という2つのカラムが含まれます。

作成したテーブルを確認するために psql メタコマンドの \dt コマンドを実行してください。

\dt

現在のスキーマにテーブルを作成する(4)

public スキーマ内に先ほど作成した mybook テーブルが作成されていることが確認できました。

スキーマを指定してテーブルを作成する

次にスキーマを指定してテーブルを作成します。現在接続しているデータベースには public スキーマの他に myshema スキーマが作成されています。作成済みのスキーマを確認するには psql メタコマンドの \dn を使用してください。

\dn

スキーマを指定してテーブルを作成する(1)

テーブルを作成します。作成するテーブル名は mymovie としました。スキーマを指定してテーブルを作成する場合は、テーブル名を スキーマ名.テーブル名 の形式で指定します。次のように実行してください。

create table myschema.mymovie (
  id integer, 
  name varchar(10)
);

スキーマを指定してテーブルを作成する(2)

テーブルが作成されました。このテーブルには id と name という2つのカラムが含まれます。

作成したテーブルを確認するために psql メタコマンドの \dt コマンドを実行してください。

\dt myschema.*

スキーマを指定してテーブルを作成する(3)

myschema スキーマ内に先ほど作成した mymovie テーブルが作成されていることが確認できました。

-- --

CREATE TABLE コマンドを使ってテーブルを作成する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。