Open3

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

alfinaalfina

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

alfinaalfina

UNION

  • テーブルを統合する。
  • 重複レコードはまとまる。
SELECT [record] FROM [table1]
UNION
SELECT [record] FROM [table2]
...

注意点

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

EXISTS

  • 必ずサブクエリと併用される
  • レコードがあればTrue、なければFalseを返す
  • 複雑な条件でレコードを取り出す(SELECT句が増える場合など)で使用すると有効

使用例

SELECT [record] FROM [table]
WHERE EXISTS (
	SELECT [record] FROM [table] 
)
  • NOT EXISTS にすると「存在しない」という条件になる
  • 「SELECT」だけでなく「UPDATE」でも使える。 → 存在するデータだけを更新する……使い方

注意点

  • クエリは適切なインデクスを用いないとパフォーマンスの低下を招く(全探索だから)
  • SQLインジェクションに気を付ける。適切にプレースホルダー、エスケープを用いる。