あんなにツラかったデスマがあっという間に解決しました!理由はこれ→SQL書き方ドリル
- 作者: 羽生章洋
- 出版社/メーカー: 技術評論社
- 発売日: 2005/03
- メディア: 単行本
- 購入: 2人 クリック: 53回
- この商品を含むブログ (78件) を見る
さて、ちゃんと手を動かすことなくぱらぱらとめくってみただけですが(爆)、うん、いいですよ、これ。SQLに関する本って、リファレンス系か学術的っぽい内容かで開発にすぐに活かせるものがなかなか見つかりません。超初心者を中級者の手前くらいまで押し上げるような本がないんですよ。僕が新人の頃に探していた趣向の本がやった出たなという感じです。
簡単なSQLはリファレンス等をみればすぐ書けるようになりますが、ちょっと難しくなるとお手上げです。何をどうすればよいか、「How」が全く分からないのです。結局、保守・運用時代に大量のSQLをメンテナンスする機会があったお陰でなんとなーくできるようになっていました。また、ORACLE MASTERの試験勉強を通じてSQL実行時にどんなことをやっているかRDBMS内部の動きも理解したのも結構有効だったと思います(ここが理解できないとパフォーマンスを無視したSQLを書きまくることになる)。
ちなみに個人的にやっているクエリーの書き順はこんな感じ。
- 対象となるエンティティを特定する(FROM句)
- 特定したエンティティの中で取得するカラムを確認する(SELECT句)
- エンティティを関連づけるカラムを確認し、結合条件を考える(WHERE句)
- その他の絞り込み条件の記述方法を決める(WHERE句)
- ソート順を決める(ORDER BY句)
今でも、複雑なクエリーを書く場合は、対象となるエンティティの部分だけでERDっぽい絵を描いてそれからSQLを書き始めます。後輩に教えるときも効果抜群です。
あと、SQL文のインデントも重要ですね。綺麗なコードを書くのが重要なように、綺麗なSQLを書くこともすごく大切です。長いSQLを書いていくと、1行1カラムってのがメンテナンスしやすいんですよね。特にカラムを複数個記述する場合は、カラムの先頭にカンマをつけるのがポイントです。これだけでSQL実行時のエラーがかなり防げます。
最後にこの本への要望としては、改訂版が出るときには、付録として超長くて複雑なSQLの穴埋め形式で解答させるような問題も載せて欲しいです。
今使っているSQLエディタ
会社ではもっぱらORACLEなのですが、今お気に入りのSQLエディタはこれ。
- OSqlEdit(SQLエディタ。SQLコード記入支援、タブ切替、整形、オブジェクト一覧表示等便利な機能がたくさん)
- OSqlGrid(更新対象テーブルを選択後、Excelみたいにダイレクトに編集できる)
「ここ(A.Ogawa's Home)」からダウンロードできます。シェアウェアなんですが、約4千円でこれだけの高機能がついてくるのはすばらしいと思います。さくさく動きますしね。オススメです。
なお、PostgreSQL版のPSqlEdit、PSqlGridはフリーのようです。PostgreSQLをお使いの方は試してみてはいかがでしょうか。