kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

SQLのコーディング規約

http://homepage2.nifty.com/igat/igapyon/diary/2005/ig050613.html
SQLを書く際の規約だけども、DBMSによって変更する方が吉だと思う。

Oracle

Oracleの場合、テーブル名、カラム名は大文字にする。
予約語は、先頭大文字、それ以降小文字 または 予約語も大文字。

その理由は、商用製品の「SI Object Browser」を使って開発する場合だと
基本が大文字となる。

Object Browser Ver10を使うと
テーブル名. と入力して、CTRL+スペースキーで カラム候補の表示ができるから
開発が便利。 テーブル名. は エイリアス名. でもその機能が使える。
SQL成形で小文字に変えることができるけど、
その成形機能だとインデントがぐちゃぐちゃになってしまう。

PostgreSQL

PostgreSQLでは、create tableする時点で
テーブル名、カラム名はすべて小文字で定義する方がよい。
予約語は、先頭大文字、それ以降小文字 または 予約語すべて大文字。

postgreSQL8.1で確認した情報ですがpostgresでは大文字、小文字の区別がされる。

テーブルの場合は、小文字と大文字の区別はないけど、カラムは区別されちゃう。
以下の通り、テーブルを作ることが可能。

deptnoとDEPTNOって2つ存在できてしまう。

CREATE TABLE dept2
(
  deptno int8 NOT NULL DEFAULT 0,
  dname varchar(20),
  "update" date,
  "DEPTNO" int8,
  CONSTRAINT dept2_key PRIMARY KEY (deptno)
) 
WITHOUT OIDS;
ALTER TABLE dept2 OWNER TO postgres;

Access

Oracle同様に、大文字を基本にしたほうがよいかな。
予約語は、先頭大文字、それ以降小文字 または 予約語もすべて大文字。

でも、SQLServerでの規約があるなら、それに合わせるほうが
親和性がよい気がする(あくまで気がするだけ)