OracleSQLをシンプルに高速で書くための習慣

私はこれまで業務アプリの運用保守を中心に担当してきました。中でも大規模システム&トラブルプロジェクトの運用保守が長く、深夜のトラブル対応も相当数、経験してきました。

トラブル対応は一分一秒を争います。そんなとき多いのがデータリカバリするための対応です。より正確に、より速くSQLを書き、実行することが求められます。そんな状況で私が行ったSQLを速く正確に書く方法を紹介します。

1.まずSELECT句を*で書く

当たり前ですがSELECT句を書きます。一旦、項目は一旦*としてfromまで書きます。
【例】

 select
*
from

2.テーブルは結合する順番で書く

結合する順番でテーブルを並べます。キレイにインデントは揃えてください。
可読性はミスを減らすために重要です。whereまで書きます。
【例】

 select
*
from
TABLE1 a
,TABLE2 b
,TABLE3 c
where

3.抽出条件、結合条件の順で書く

抽出条件と結合条件を分けて書いておきます。見返すときにどこを見ればよいかすぐにわかります。
【例】

 select
*
from
TABLE1 a
,TABLE2 b
,TABLE3 c
where
a.USER_ID = ‘A001′ –抽出条件1
and a.USER_KB = ’01’ –抽出条件2
and a.USER_ID = b.USER_ID –結合条件3
and b.USER_ID = c.USER_ID –結合条件3

4.最後にSELECT句を書く

テーブル、抽出条件、結合条件が出そろったところで抽出項目を書きます。完成です。
【例】

 select
a.USER_ID
,a.USER_NM
from
TABLE1 a
,TABLE2 b
,TABLE3 c
where
a.USER_ID = ‘A001′ –抽出条件1
and a.USER_KB = ’01’ –抽出条件2
and a.USER_ID = b.USER_ID –結合条件3
and b.USER_ID = c.USER_ID –結合条件3

最後に

ちなみにこの順番はSQLを評価するときと同じ順です。最近はJOINがスタンダードなので、少し違うかもしれませんが。

オラクルマスター教科書Oracle Database Gold 12(トゥエルブ(新機能編) iStudyオフィシャルガイド [ 代田佳子 ]

価格:6,696円
(2018/11/19 19:20時点)