SQLを学び、エンジニアとして働いているものの、ゼロからデータベースを構築するのは、まだ自信がない、という方は、「SQLパズル」に挑戦されてはいかがでしょうか。
この本には、ベテランのSQLエンジニアが唸るようなSQLが幾つも載っており、このSQLを「写経」で学べばスキルアップに最適です。
ここでは、スキルアップを考えているSQLエンジニアに、ぜひ、挑戦してほしい、「SQLのパズル」について紹介します。
目次
プログラムの勉強法「写経」をSQLでも
最近、プログラミングの勉強法として注目されている「写経」をご存じでしょうか。この勉強方法は、プログラミングだけでなく、SQLの学習にも向いています。
まずは、SQLの勉強方法として注目されている「写経」と、「SQLパズル」との関係について紹介します。
注目される勉強法、「写経」とは
今、スキルアップに興味を持つエンジニアは、ベテランのプログラマーが書いた良質なプログラムを書き写し、実際に動かしてみる勉強方法に注目しています。
なお、今ならネットを調べれば、プログラムのサンプルが簡単に見つかります。
しかし、それをコピペしただけでは、スキルが身に付きません。そのプログラムの全てを、キーボードから自分で打ち、実際に動かしてみることで、多くのことが学べます。
この学習方法は、ちょうど、お坊さんがお経を書き写しながら、そこに書かれた教義を学んだように、プログラムを学ぶ方法ということで、よく写経と呼ばれます。
そして、この方法は、SQLを学ぶうえでも有効です。
写経するSQLをどうやって探すか
先ほど解説したプログラムを学ぶ方法の「写経」をSQLの学習に取り入れるには、ベテランエンジニアが書いた良質なSQLが必要です。
しかし、そのようなSQLが簡単に見つかるとは限りません。さらに、SQLはデータに依存することから、具体的なデータも必要です。
このように、学習に使えそうなちょうど良いSQLのサンプルなら、ネットを探せば見つかるのでは、と考える方もいるでしょう。
しかし、そのようなネットで見つかるSQLが「写経」に使える品質を備えているとは限りません。
では、どこで写経に使える良質のSQLを探せばよいでしょうか。おすすめは、本に記載されたSQLです。通常、出版社が発行するSQLの専門書の著者は、SQLのエキスパートの方です。
また、例として採用されるSQLも、著者であるエキスパートが作り、出版社が確認したものです。そのため、本に書かれたSQLを使い、「写経」に挑戦してみてください。
SQLの写経に「SQLのパズル」を
先ほど紹介したSQLの「写経」に、おすすめしたい本が、今回紹介する「SQLのパズル」です。
この本には、75ものSQLで解決する具体的な問題と、その解答例を紹介しれています。そして、SQLのスキルアップを考えている方におすすめの本です。
次から、この本について詳しく紹介します。
「SQLパズル: プログラミングが変わる書き方/考え方」の紹介
「SQLパズル」と言えば、アメリカ在住のSQLの第一人者であるジョー・セルコの著書、「Joe Celko’s SQL Puzzles and Answers」です。
日本では、「SQLパズル: プログラミングが変わる書き方/考え方」という日本語訳が翔泳社から出版されています。
なお、この本が出版されたのはかなり前で、新刊が入手できないかもしれません。AmazonならKindle版なら購入できるので、興味のある方は、ぜひ、参照してください。
次から、この本について簡単に紹介します。
著書ジョー・セルコとは
「SQLパズル」として知られている「Joe Celko’s SQL Puzzles and Answers」の著書ジョー・セルコ氏は、アメリカ出身のリレーショナルデータベースのエキスパートで、SQLに関する本を何冊も書いている有名な方です。
中でも「Joe Celkos SQL for Smarties, Fourth Edition: Advanced SQL Programming」は有名で、SQLプログラミングバイブルと呼ばれています。
なお、この本の日本語訳が、翔泳社から「プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに」から出ているので、興味のある方は読んでみてください。
プログラマのためのSQL 第4版 すべてを知り尽くしたいあなたに
SQLパズルの特徴
ジョー・セルコ氏の著書「SQLパズル」には、SQLで解くための75のパズルと、それに対する複数の回答例が紹介されています。
紹介されている75のパズルは、比較的簡単なものから、初心者の方にはちょっと難しいものもありますが、実際の業務を意識した問題が採用でされています。
そして、この本が良い点が、その解答例です。SQLの第一人者であるジョー・セルコ氏の書いた回答例は、ベテランのSQLエンジニアが唸らされるものも少なくありません。
SQLの賢い使い方や考え方を学びたい方におすすめの本です。
実際にSQLを書いて学習する
先ほど、プログラミングの勉強法として、「写経」が有効だと紹介しました。しかし、SQLの良い例をネットで探すのは、かなり難しいことです。
その点、ジョー・セルコ氏の著書「SQLパズル」は、ベテランのエンジニアも参考にしたいと思えるSQLがたくさん載っています。
なお、先ほども紹介したように、この本でパズルとして紹介されている問題は、どれも実際の業務で使われているデータベースを意識したものばかりです。
そのため、業務で使うデータを登録し、そのデータを利用するためのSQL作成の学習にぴったりの本と言えます。ぜひ、実際の手を動かして、パズルを解いてみてください。
「SQLパズル」が気になったらサポートページをチェック
「SQLパズル」を翻訳されたミックさんは、この本のサポートページを公開しています。
そして、このWebページには、本文中に掲載されていない内容や、コードについての注意点、別解なども掲載されています。
「SQLパズル」を見ながら実際にSQLを書きながらこのページを読むと、かなり参考になるでしょう。
また、ミックさんは、他にもデータベースやSQLに関する本を多数執筆されています。
「SQLパズル」はちょっとハードルが高い、と感じた方には、ぜひ、ミックさんの書いたSQLの入門書で勉強してください。
「SQLパズル」を使った方のブログ
「SQLパズル」に載っている問題の解き方について、実際にSQLを書いてみて、さらに別の解き方に挑戦されている方もいます。
なお、このようなことに挑戦される方は、「SQLパズル」に載っている回答を見て、SQLを活用できる考え方ができる方です。ぜひ、このようなブログも参考にしてください。
まとめ
SQLを学び、使いこなせているものの、Webシステムのデータベースをゼロから設計するスキルはまだないかな、と感じている方に、ぜひ、トライしてほしいのが、今回紹介した「SQLパズル」です。
この本には、ベテランのSQLエンジニアが唸るようなSQLが幾つも掲載されています。
ぜひ、そのようなSQLを実際に書いてみて、エクスパートと呼ばれるSQLエンジニアのデータベースの作り方や使い方を学んでください。