《Oracle命令语法速查》【 SELECT 】
表、ビューに格納されている値を取り出す
┬───────────────────┬→
└ WITH ┬ query_name AS ( 副問合せ ) ┬┘
└ ← , ───────────┘
[ 副問合せのブロックに名前を指定する ]
→ SELECT [ hint ] { DISTINCT | UNIQUE | ALL } →
[ DISTINCT : 結果に全ての列の値が同じ行が複数ある場合に1行だけ返す ]
[ UNIQUE : DISTINCT と同様 ]
[ ALL : 重複行も含め全ての行を返す(デフォルト) ]
→┬ * ──────────────────────────┬→
│ [ 全ての表の全ての列を取り出す ] │
└┬ [ スキーマ . ] ┬ 表名 ──────────┬ . * ┬┘
│ ├ ビュー名 ───────┤ │
│ └ マテリアライズドビュー名 ┘ │
│[ 指定した表の全ての列を取り出す ] │
├ 式 [ [ AS ] 列別名 ] ───────────────┤
│[ 特定の列や式の値を取り出す ] │
├ query_name ────────────────────┤
└ ← , ───────────────────────┘
→ FROM (*1) →
→┬───────┬→
└ WHERE 条件式 ┘
[ 変更対象の行を抽出する条件を指定する ]
→┬─────────────────────┬→
├ [ START WITH 条件式 ] CONNECT BY 条件式 ┤
│[ 階層順に行を戻す際に使用する ] │
└ GROUP BY ┬ 式 ─┬ [ HAVING 条件式 ] ] ┘
└ ← , ┘
[ 指定された式の値に基づき結果をグループ化し抽出する ]
→ [ ┬ UNION [ ALL ] ┬ SELECT文 ] →
├ INTERSECT ┤
└ MINUS ┘
[ 他の SELECT文の結果と集合演算を行い結合した結果を返す ]
→ [ ORDER BY ┬ { 式 | 列別名 | 列位置 } [ ASC | DESC ] ┬ ] →
└ ← , ──────────────────┘
[ 結果の順序を指定する ]
→┬────────────────────────────────┬→
└ FOR UPDATE [ OF [┬ [ スキーマ . ] ┬──────┬ 列名 ┬] ] ┘
│ ├ 表名 . ┤ │
│ └ ビュー名 . ┘ │
└ ← , ────────────────┘
[ 選択された行をロックする ]
→┬─────────────────────────────┬ ;
├ NOWAIT ────────────────────────┤
│[ ロック取得に失敗した場合に待機しない ] │
└ WAIT 数値 ───────────────────────┘
[ ロック取得に失敗した場合に指定秒数だけ待機する ]
(*1)
→┬ ONLY (*2) ──┬→
├ (*2) [ 別名 ] ┤
├ ( (*3) ) ───┤
├ (*3) ────┤
└ ← , ─────┘
(*2)
→┬ [ スキーマ . ] 表名 [┬ PARTITION ( パーティション名 ) ────┬] ┬→
│ ├ SUBPARTITION ( サブパーティション名 ) ┤ │
│ └ @ データベースリンク名 ────────┘ │
│[ 削除対象となる表を指定する ] │
├ [ スキーマ . ] ビュー名 [ @ データベースリンク名 ] ────────┤
│[ 削除対象となるビュー / マテリアライズドビューを指定する ] │
├ ( 副問合せ ) [ WITH ┬ READ ONLY ─────────────┬ ] ─┤
│ └ CHECK OPTION [ CONSTRAINT 制約名 ] ┘ │
├ query_name ────────────────────────────┤
└ TABLE ( 副問合せ ) [ (+) ] ────────────────────┘
(*3)
→ (*2)┬ [ ┬ INNER ────────┬ ] JOIN (*1) ┬ ON 条件式 ──────┬┬→
│ └┬ LEFT ┬ [ OUTER ] ┘ └ USING ( ┬ 列名 ┬ ) ┘│
│ ├ RIGHT ┤ └ ← , ┘ │
│ └ FULL ┘ │
├ CROSS JOIN ─────────────────────────────┤
└ NATURAL [ ┬ INNER ────────┬ ] JOIN (*1) ─────────┘
└┬ LEFT ┬ [ OUTER ] ┘
├ RIGHT ┤
└ FULL ┘