Open3
SQLコマンド・関数50本ノック

Oracle SQLのコマンドや関数を
50個分覚えるために書いてく

UNION
- テーブルを統合する。
- 重複レコードはまとまる。
SELECT [record] FROM [table1]
UNION
SELECT [record] FROM [table2]
...
注意点
- テーブル列の数は同じである必要がある。
また、データ型と位置もあってる必要がある。 - table1とtable2で別の項目をSELECTできない。
- ORDER BY を使う場合はUNIONが一通り終わってからつける。
並べ替えで使う別名は、最初(table1)で設定したものが有効になる。
table2以降で設定したものは無視される。

EXISTS
- 必ずサブクエリと併用される
- レコードがあればTrue、なければFalseを返す
- 複雑な条件でレコードを取り出す(SELECT句が増える場合など)で使用すると有効
使用例
SELECT [record] FROM [table]
WHERE EXISTS (
SELECT [record] FROM [table]
)
- NOT EXISTS にすると「存在しない」という条件になる
- 「SELECT」だけでなく「UPDATE」でも使える。 → 存在するデータだけを更新する……使い方
注意点
- クエリは適切なインデクスを用いないとパフォーマンスの低下を招く(全探索だから)
- SQLインジェクションに気を付ける。適切にプレースホルダー、エスケープを用いる。