phpPgAdminでのテーブルやカラムの操作メモ

phpPgAdminを使用してDBにテーブルやカラムを作る際にわからない事だらけだったのでメモ。

オプション(WITHOUT OIDS)

参考:PostgreSQLについて

CREATE TABLEでは,デフォルトではOIDが作成されます.OIDを生成しない
テーブルを作るには,キーワード “WITHOUT OIDS” を使用します.

OIDって?

オブジェクト識別子(OID)はPostgreSQLの内部で様々なシステムテーブルの プライマリキーとして使用されます。また、テーブルの作成時にWITHOUT OIDS が指定されていない場合やdefault_with_oids設定変数が偽に設定されている 場合を除き、OIDシステム列がユーザ作成のテーブルに追加されます。 oidデータ型は現在、符号無し4バイト整数として実装されています。 これは、大規模なデータベースの全体にわたって一意とするには十分では ありません。 大規模な個別のテーブル内においても十分ではないかもしれません。 そのため、ユーザ作成テーブルのOID列をプライマリキーとして使用するのは お勧めできません。 OIDの使用は、システムテーブルへの参照の場合にのみ推奨されます。

つまり、

小規模DB内で識別する為に「OID」を使用しても良いという位の意味

らしい。
普段は、使わない、でいいのかな。

参考サイト内にあったまとめ。

■テーブル作成方法
1)phpPgAdminにて「テーブル作成」を選択
2)テーブル名(英数字)を入力
3)フィールド数を入力
4)次画面へ移り、各フィールド入力(英数字)

※フィールドの属性以外は、後からでも変更可能
※フィールドの追加・挿入・削除も可能

■PostgreSQLへの接続 → pg_connect命令
■SQL文の実行 → pg_exec 又は pg_query命令

プライマリキー

主キー 【 primary key 】 プライマリキー

データベースの中から、ある一組のデータセット(レコード)を一意に識別するための情報。
主キーは必ずしも一つの項目とは限らず、複数の項目を組み合わせて主キーとして用いる場合もある。
一般的には個々の要素に通し番号などを割り振ってこれを主キーに設定する場合が多い。

データ型

データ型一覧

列の型で配列

各型で配列を作る事が出来るよう。
phpPgAdminでは、データ型の横のセレクトボックスで、[]を選択しておけば配列になるもよう。
ただし、配列にするとちょっと面倒があるよう。
使わない方が無難?

ただ、配列に入れるために中カッコでくくったカンマ区切りの文字列を作らないといけないので、若干面倒です。また、バージョン7.4から配列の要素内にある特定の値を検索する事ができるようにはなりましたが、LIKE句が使えなかったりと、色々不便な所があります。
http://software.aufheben.info/kouza/senior/kouza_pg.html

intかbigintか

整数型や連番型、ともに、bigがある。

integer : 4バイト符号付き整数
bigint : 8バイト符号付き整数

どう違う?どっちを使うべき?
参考:時代はBIGINT

MySQLのINT型の最小値と最大値は、-2147483648~2147483647です。
「2147483647」は、「21億」
インド人と中国人の全員が会員登録しようとすると、INT型では足りないということです。

しかし、

オートインクリメントのカラムだけのテーブルで、限界までデータを詰め込むと、
・INT型 → 約43ギガバイト
・BIGINT型 → 約326エクサバイト

よっぽどの事がない限り、int型でよさそう。

テーブルの破棄

テーブルを破棄しようとすると、
カスケードなるチェックボックスが。

カスケード規則は、データベースがある操作が起こることを許可し、ほかのテーブルまたは行を最初の操作と同期をとるように変更することによって RI を確実にする規則です。たとえば、カスケード削除規則が定義されていると、主キー テーブルでのレコードの削除により、データベースは削除された行の主キーと同じ値の外部キーを持つデータベース中のすべての行を検索して削除します。
http://www.agtech.co.jp/html/v9manuals/advops/advops-07-2.html

要は、プライマリキーに設定された値と同じ外部キーを持つデータ、をまとめて削除してくれる、
関連データも一緒に消していい?というチェックボックスのよう。たぶん。

sql
   このエントリーをはてなブックマークに追加