勉強するにあたって、いろんな方法があるが
今回は過去の知見を活かしてoracleSQLの試験を参考にやってみたいと思う
出会った単語たちをただ羅列していく
シノニム:テーブルの別名、どうやら移行の際はviewになるようだ
USING:結合するテーブルに同一名がある場合に使い、結合時一つの列となる
同じ価格の製品名と価格をselect:
同じ表をjoinしてusingとして価格、whereで表1と表2の製品名が異なるものを指定、distinctで重複をなくす
or
groupbyとhavingCount>1を使用して同列に同じ価格が複数あるものをselectし、それをwhere inで取得
一部だけのdistinct:できません。
distinctとgroupbyの違い:distinctは射影で最終的に重複を排除、groupbyは重複処理を行ったうえで結果に対して処理を加える際に使用
distinctのパフォーマンス:データが多いときはインデックスを使用、すべての列が異なる場合はdistinctを使用しない
distinctのnull扱い:nullも一つの値
表データすべて削除:truncateするか行指定なくdelete
truncateとdeleteの違い:
deleteは「データを1つづつ削除、データのみ(dropしない)削除、incrementが初期化されない、rollbackできる」
シーケンスの作り方: CREATE SEQUENCE文で作成
トランザクションのコミットやロールバックに関係なく、採番(取得)した時点でインクリメント
dual表に対して指定することで取得
dual表とは: