SQL書き方ドリル

いま、修行中です。はっきり言って、私のようなおじさんが、いまさらやるようなドリルではないのですけどね。扱っている、SQL文は基本的なものばかりです。でもでもでも、この本すごくいいです。これまで、SQL文を書いてきて無意識に考えているいたことが、分かりやすく説明されています。この本に書かれているSQLの書き順が重要であるという考え方に惚れました。たしかに、SQL文を作り出したり、解析しているときにこの書き順に近い考え方をしていることを、あらためて理解しました。単純な例としては、こんな感じです。
まずは、「SELECT」と「;」

SELECT
;

つぎにFROM句でテーブル指定

SELECT
FROM
  テーブル名
;

つぎに「WHERE」

SELECT
FROM
  テーブル名
WHERE
;

レコードを特定するための条件

SELECT
FROM
  テーブル名
WHERE
  条件
;

最後に選択リスト

SELECT
  列名
FROM
  テーブル名
WHERE
  条件
;

といった感じです。
これは、非常にシンプルな例ですが、このように考えると、SQL文がどのように評価されデーターベース内部で実行されてゆくかのイメージもつかみやすいですね。「指定したテーブル内のたくさんレコードの中からある条件にあったレコードのみを抽出して、取得したい列のみ表示される」見たいな感じです。
新人教育にはもってこいかも知れません。こんど進めてみようかな。付録の練習用ソフトもJUnit見たいに正解だとグリーンバーが出て楽しく学習できます。
また、この本の「結合」に対する説明も非常に今日に分かりやすいものでした。要するに、二つのテーブル(集合)の直積を求めた結果からWHERE句の条件で行を選択したものであるという説明です。ORACLEでの結合の記述方法がWHERE句を使うのはそのためなのですね(いまさらですけどね)。たしかにWHERE句を指定し忘れると直積になってレコード数が爆発しますよね。

改訂新版 反復学習ソフト付き SQL書き方ドリル
改訂新版 反復学習ソフト付き SQL書き方ドリル