【Oracle - 12c SQL基礎】part1 実務で役に立ちそうなSQL
お疲れ様です。
SQL基礎の教本を一通り読んだところですが
実務で使いそうなものをピックアップしました。
【オラクル認定資格試験対策書】ORACLE MASTER Bronze[12c SQL基礎](試験番号:1Z0-061)完全詳解+精選問題集(オラクルマスタースタディガイド)
- 作者: エディフィストラーニング株式会社,西昭彦,飯室美紀,鈴木佐和,岡野友紀,矢島祐子
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2014/03/21
- メディア: 単行本
- この商品を含むブログ (2件) を見る
基本的なselect, insert, delete, update辺りは言わずもがななので省略
1.表構造の表示 DESC (DESCRIBE)
column名とか忘れたときに確認するのによく使いますね。
2.テーブル名確認 table_name like文
テーブル名を微妙に忘れたときなんかに使います。
where句でtable_nameを条件に入れないと環境によっては膨大な数Hitして
探してたやつが見つからないこともあるので注意
3.文字列の間引き substr
上記ではempnoの上位2桁を省いて表示しています。
一例として挙げましたが実際は上記の様な使い方をするよりも
PLSQLで入力データから文字列を取得するときによく使います。
4.NULL値を別の値で表示 nvl
enameがnullの場合に名無しさんを表示しています。
どこかのプロジェクトであるカラムにnot null制約が張られていなかったため
Null と 0 が混在して上手く計算できないときに使ったかも
5.重複行の削除 distinct
田から始まる2文字の苗字を抽出。distinctで重複を削除しています。
大きいプロジェクトに来てから重複レコードを懸念することが無く
distinctを使う機会はほとんどなくなりました。それにdistinctはソートも
するので性能も良くないとか何とか…
Group By や Havingに至っては業務で使ったことが無いですね。
6.表結合 Oracle独自結合構文
testtableとtesttable2をempnoで結合しています。
join文よりも上記の結合が分かりやすく使っていました。
ただこちらも大きいプロジェクトでは使うことがほぼないですね
他にも結合の手段として副問い合わせ何かも使っていたような気がします。
以上です。