PostgreSQLでデータベースやテーブルの構成を作成・修正する
PostgreSQLでデータベースやテーブルを作成・修正する方法です.
目次
データベースの追加と削除
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版,翔泳社.