2009年8月23日日曜日

SQLの本

最近になってちょこっとSQLを書くようになりました。


いろいろな方の協力をもらってOracleを使わせてもらっています。んでもって、PHP(+ oci_xxxx)で簡単なWebアプリを作らせてもらいました。DBのテーブルは準備してもらいましたが、アプリの作成はなぜか私が担当。
元計算機屋さんとはいえ、PHPとDBを使うのは初めて。PHPについてはPerlとASPの経験で補うことができましたが、DBやSQLは入社した20とウン年まえに少し習っただけです。

昔習ったころはミニコンで動く某社のDBMSで実習しました。カリキュラムはあくまでDBの概論的なものでしたので、オペレーションやSQLはホンのさわり程度。体系的にはSQLを学んでません。(この分野で活躍されている方って、そもそもSQLを体系的に学ぶカリキュラムとか受けたりされているんでしょうか?やっぱ独学?)

これが最初に買った本。SQLの言語リファレンスの本。目次と章立てを見れば、どんな命令でどんなことができるのかがわかります。

人が書いたSQLを読む時の参考書としていいものだと思います。各種のDBに対応しているのでACCESSを使うときでも傍らにおいていました。(ACCESS+ODBCでの線も考えていたので。)

ただ、予備知識やSQLを読んだ経験が無い状態では、自分がやりたいことを実現する方法やそれをSQLで表す方法はこの本からだけで導きだすのは難しいかと思います。

私の場合は"サブクエリ SELECT FROM ( SELECT FROM ~) "のいろいろな使い方を知らずにいたので"いったんこの条件で検索してPHPの配列に読み込んで、、、後から連想配列でぶつけて、、、いやもっと簡単にできるでしょ、、"なんて具合に、一人ブツブツ悩んでおりました。

サブクエリの組み合わせでイケルことに気がついたのはほかの人が書いたSQLをサンプルとしてもらってから。

こっちは最近になって買った本。名前のとおり逆引きなので目的からやりたいことにたどり着けます。サンプルのコードもわかりやすく、あとのきにこのSQLを読んでいれば応用できたのに、、、と思う部分も多々。前述の本とあわせれば3ヶ月くらいは作業期間短縮できたかなぁと。

次に向けていろいろな事例を見ています。また私が書くのか?(笑)