【Oracle - 12c SQL基礎】part1 実務で役に立ちそうなSQL

お疲れ様です。

SQL基礎の教本を一通り読んだところですが

実務で使いそうなものをピックアップしました。

【オラクル認定資格試験対策書】ORACLE MASTER Bronze[12c SQL基礎](試験番号:1Z0-061)完全詳解+精選問題集(オラクルマスタースタディガイド)

【オラクル認定資格試験対策書】ORACLE MASTER Bronze[12c SQL基礎](試験番号:1Z0-061)完全詳解+精選問題集(オラクルマスタースタディガイド)

 

基本的なselect, insert, delete, update辺りは言わずもがななので省略

 

1.表構造の表示 DESC (DESCRIBE)

f:id:peaceWalker:20180529013037p:plain

column名とか忘れたときに確認するのによく使いますね。

 

2.テーブル名確認 table_name  like文

f:id:peaceWalker:20180529013324p:plain

テーブル名を微妙に忘れたときなんかに使います。

where句でtable_nameを条件に入れないと環境によっては膨大な数Hitして

探してたやつが見つからないこともあるので注意

 

3.文字列の間引き substr 

f:id:peaceWalker:20180529014629p:plain

上記ではempnoの上位2桁を省いて表示しています。

一例として挙げましたが実際は上記の様な使い方をするよりも

PLSQLで入力データから文字列を取得するときによく使います。

 

4.NULL値を別の値で表示 nvl

f:id:peaceWalker:20180529015957p:plain

enameがnullの場合に名無しさんを表示しています。

どこかのプロジェクトであるカラムにnot null制約が張られていなかったため

Null と 0 が混在して上手く計算できないときに使ったかも

 

5.重複行の削除 distinct

f:id:peaceWalker:20180529020824p:plain

田から始まる2文字の苗字を抽出。distinctで重複を削除しています。

大きいプロジェクトに来てから重複レコードを懸念することが無く

distinctを使う機会はほとんどなくなりました。それにdistinctはソートも

するので性能も良くないとか何とか…

Group By や Havingに至っては業務で使ったことが無いですね。

 

6.表結合 Oracle独自結合構文

f:id:peaceWalker:20180529022708p:plain

testtableとtesttable2をempnoで結合しています。

join文よりも上記の結合が分かりやすく使っていました。

ただこちらも大きいプロジェクトでは使うことがほぼないですね

 

他にも結合の手段として副問い合わせ何かも使っていたような気がします。

以上です。