PostgreSQLでデータベースやテーブルを作成・修正する方法です.

目次

  1. データベースの追加と削除
  2. テーブルの追加と削除
    1. 列の型
    2. 列の制約
    3. テーブルの制約
  3. テーブルやカラムの修正
    1. テーブル名の変更
    2. カラムの追加・削除
    3. カラム名の変更
    4. カラムの型の変更
    5. 主キー制約の追加・削除
  4. 参考文献

データベースの追加と削除

CREATE DATABASE データベース名;
DROP DATABASE データベース名;

データベース名や後述のテーブル名・カラム名を命名する際には英数,アンダースコアを使います.

テーブルの追加と削除

テーブルを追加するには,

CREATE TABLE テーブル名
(カラム名 型 制約,
カラム名 型 制約,

テーブルの制約);

とします.

テーブルは配列でなくスカラ値が入るようにカラムを作ります.主キーから関数的に従属したカラムが見えるようなら関係性の異なる2つ以上のテーブルが交じっているということですからテーブルを分割します.非主キーのカラム間でも従属する部分があるなら,非主キーからあるカラムを主キーとした新たなテーブルを作ることができます.

削除は

DROP TABLE テーブル名;

です.

列の型

代表的な型として以下があります.

設定
INTEGER 整数
NUMERIC 小数までの数値
TEXT 文字列
DATE 年月日

文字列の型には固定長文字列CHARや可変長文字列VARCHARもあります.
CHAR(8)VARCHAR(8)だと8文字までで,特にCHAR(8)では8文字未満のときに後方をスペースで埋めます.

列の制約

入力なしであることを認めない場合,

NOT NULL

の制約を課します.

特になにも制約がないなら列制約部分には入力不要ですが,その場合,未入力のデータの初期値はNULLとなります.

初期値を0に設定したいとすれば,

DEFAULT 0

のように制約を課します.

テーブルの制約

レコードを特定するための主キーになるものとしてidという列があるとすれば,主キー制約を

PRIMARY KEY (id);

のように設定します.

一意性を保つのに複数列が必要な場合,それがたとえばcol1列とcol2列なら,

PRIMARY KEY (co1, col2);

のようにします.

テーブルやカラムの修正

テーブル名の変更

ALTER TABLE 旧テーブル名 RENAME TO 新テーブル名;

カラムの追加・削除

ALTER TABLE テーブル名 ADD COLUMN カラム名 型;
ALTER TABLE テーブル名 DROP COLUMN カラム名;

カラム名の変更

ALTER TABLE テーブル名 RENAME COLUMN 旧カラム名 TO 新カラム名;

カラムの型の変更

ALTER TABLE テーブル名 ALTER COLUMN カラム名 TYPE 新しい型;

主キー制約の追加・削除

ALTER TABLE テーブル名 ADD CONSTRAINT テーブル名_pkey PRIMARY KEY(対象カラム);
ALTER TABLE テーブル名 DROP CONSTRAINT テーブル名_pkey;

参考文献

SQLの方言に配慮しつつ,リレーショナルデータベースの操作を一から説明している入門書です.

  • ミック (2016)「SQL」第2版,翔泳社.