kagamihogeの日記

kagamihogeの日記です。

SQL Hacks ―データベースを自由自在に操るテクニック

ここ半年ほどの個人テーマはSQL再入門である。元々勉強しなおそうと決めた理由は、Oracleまわりでトラブルやっちゃったり、イマイチSQLのパフォーマンスが出ないのに悩んだりと、DBまわりで苦しむことが多い時期があった背景がある。それと同時に、RDBMSの能力を最大限に活かすにはどうすればよいのか、てなことも考えている。ここんとこは大規模データ処理と言えばビッグなデータが流行りではあるが、むしろRDBMSをもちっと使いこなせるようになりたいなぁ、というのが俺の感覚である。いやまぁ、自分の仕事環境がビッグなデータにあまり関係ないってこともあるんですけどね。

そういうわけでDB関連再入門は大きく2ルートに分けて進めている。一つは、理論的なもので、もう一つは、物理的なもの。前者は、関係データベースの性質とは何か、とか、SQLはどういう性格を持つ言語なのか、とかそういう類。後者は、俺は仕事の関係上もっぱらOracleなので、Oracleアーキテクチャであるとか使いこなし方であるとか、そんな感じ。前者は抽象的寄りで、後者は実装寄りと言えるだろうか。このように学習を進めることにしたのは俺のオリジナルってわけでもなく、達人に学ぶDB設計 徹底指南書 初級者で終わりたくないあなたへ - kagamihogeのblogでそうすることを推奨されてたから、という下地があるのだけど。

そこで本書であるが、SQLの具体的なテクニックを学ぶための本である。こういう用途にはこういうSQLを使うことができる、というバリエーションが延々と紹介および解説されている。達人に学ぶ SQL徹底指南書 - kagamihogeのblogでも、この本の次に読むべき一冊として本書が紹介されているが、SQLってこんなことも出来るんだ、と表現能力の豊かさと幅を知るためには実に良く出来た一冊だった。ただし、その性質上、本書で紹介されるクエリはどれも状況特化な色が強い。一般的な知識を与えるというより、ハマればビシッとキマる巧みのクエリが沢山載っている。必要となったその瞬間に専用の特殊技を使うべし、という本書のテーマは正に「HACKS」である。
また、複数DBに対応している点も心憎い。基本はMySQLをベースにしているが、ほぼすべての例についてMySQL, SQL Server, Oracle, PostgreSQLにも対応している。一部にベンダー固有などの事情で無いものもあるが、実際読んでみたところ大して気になるものではなかった。

SQL Hacks ―データベースを自由自在に操るテクニック

SQL Hacks ―データベースを自由自在に操るテクニック