Torihaji's Growth Diary

Little by little, no hurry.

初心者である私が書籍"スッキリわかるSQL"にゴリ押された件

はじめに

みなさんこんにちは、torihaziです

今日はタイトルの本を読んでみたので、そのアウトプット回です

個人的には 最後の概念設計あたりが山場でしたね。

それではltg

スッキリわかるSQL入門 第3版 ドリル256問付き! (スッキリわかる入門シリーズ) | 中山 清喬, 飯田 理恵子, 株式会社フレアリンク |本 | 通販 | Amazon

どんな本だったか 1言で!!

圧倒的物量で知識定着をゴリ押される書籍

よかったこと

問題量が豊富

書籍タイトルにもありますが、巻末に256問の問題があります。

簡単なSELECT から 副問い合わせ、複数テーブル間の結合問題まで嫌になるくらいあります。

ちなみに僕は心が折れかけました。( ´ ▽ ` )

ただ やり切れば自信はつくと思います。

事実、取り組む前は CASE WHEN~COALESCEなどはおろか書き方もまともに知らない状態でしたが、

何度も出てくるのでもう使い方は覚えることができました。

あとは INSERT INTOUPDATEのあとは SET か VALUESなのかとかそう言うものもですね。

これだけやれば、身につくというかこびりついて離れなくなります。

私はこのような学習本は"知識のつらつら述べるだけでなく演習量があるか"どうかも重要であると考えています。

そのためこの点については本書籍はとてもよかったと思います。

手を動かして試せるdokoQLがあること

dokoQLは本書籍の発行会社が提供しているオンラインのSQL学習用webサービスのことです。

書籍で扱っているテーブルが実際に同サービス上で用意されており、それに対してSQLも実行することができます。

そのため、自分で考えたSQLを実行して学習を進めることができます。

悪かったこと

問題の解答に少し誤植がある

問題演習をやっている間に気づいたのですが、解答に誤植がありました。

経験者ならわかるかもしれませんが、初心者にとっては

こう言う書き方もあるのね。参考になります。

となってしまいます。そこから調べることで更なる学力向上となりますが

うーんと思ってしまいました。

dokoQLにSQL実行上限があること

dokoQLには巻末の問題に対応するテーブルも用意されているので、

それらに対してもSQLを実行可能です。

ただSQL実行上限が100回です。

もちろんリセットは可能なのですが、指定した回までリセットというものではなく全リセットです。

初期テーブルからINSERTUPDATEのような更新処理をしながら作り上げていくので

途中で上限に達してしまった時は台パンしたくなりました。

特にINSERTが20個ほどあった最終問題の時は応えました。

学んだこと

意外と数があったSQLの関数たち

私は去年、他スクールさんでSQLについてはみたことがあったので完全初見ではありませんでした。

しかし文中で何度も触れていますが、CASE WHENなどは知りませんでした。

CASE WHENについては書き方が2通りあり、使い分けは下記になります。

  • CASE カラム名 WHEN 条件式 THEN 値 ->条件が 同値比較(a=b)のもの
  • CASE WHEN 条件式 THEN 値 ->条件が数値比較 (a>=bなど)のもの

また非NULL時の値を表現する際に使用するCOALESCEは面食らいました。

COALESCEはCOALESCE(カラムa,'カラムaがnullだったときに表示する値')の形で使用します。

これから機会があれば積極的に使っていきたいと思います。

エイリアスのas は省略可能

テーブル間の結合において出てくるテーブル名のエイリアス(tableA as hoge)が省略可能であったことです.

dokoQLは1回あたりのSQL文の文字列上限が200文字であったのでよく使いました。

これについては解答をみて知りましたが、誤植かと思いました。

難しかったこと

概念設計におけるエンティティの抽出方法について

冒頭においても触れていますが、エンティティの抽出方法が難しかったと思います。

今もあまり理解できているとは思えません。

現実世界の物体、事象をどのようにSQLで扱えるようにデータ化するかを設計するフェーズだと思いますが、うーんという状況です。

この後に読むことになっているDB設計の書籍で理解できたらいいなと思っています。

巻末問題の問題文の日本語

SQL以前の問題です。

1問あたりの文章が長く、条件の抽出に苦労しました。

私は1度に全てSQLを作り切ろうとしてしまうので

段階を踏んで、1条件ずつクリアするやり方をしていったほうが良いと感じました。

終わりに

いかがだったでしょうか。

初心者である方にとっては良書であると思います。

書籍自体は分厚く心が萎えてしまう方も多いと思うので

電子書籍を試してみるのもありかと思います。

1つずつクリアしていったら見える景色は必ずいいものになります。

さーっと読み進めるだけでわかったつもりになるのは危険です!

絶対に一番起きてほしくないときにそのつけが回ってきます。

手を動かして学習するすることをマストしてください!

萎えたら僕にDMください。松岡修造みたいに励ましてあげます。

何度も言いますが、辛いですけど強くなれます。

頑張ってください。

僕も頑張ります。