はじめに
みなさんこんにちは、torihaziです
今日はタイトルの本を読んでみたので、そのアウトプット回です
個人的には 最後の概念設計あたりが山場でしたね。
それではltg
スッキリわかるSQL入門 第3版 ドリル256問付き! (スッキリわかる入門シリーズ) | 中山 清喬, 飯田 理恵子, 株式会社フレアリンク |本 | 通販 | Amazon
どんな本だったか 1言で!!
圧倒的物量で知識定着をゴリ押される書籍
よかったこと
問題量が豊富
書籍タイトルにもありますが、巻末に256問の問題があります。
簡単なSELECT から 副問い合わせ、複数テーブル間の結合問題まで嫌になるくらいあります。
ちなみに僕は心が折れかけました。( ´ ▽ ` )
ただ やり切れば自信はつくと思います。
事実、取り組む前は CASE WHEN~やCOALESCEなどはおろか書き方もまともに知らない状態でしたが、
何度も出てくるのでもう使い方は覚えることができました。
あとは INSERT INTOと UPDATEのあとは SET か VALUESなのかとかそう言うものもですね。
これだけやれば、身につくというかこびりついて離れなくなります。
私はこのような学習本は"知識のつらつら述べるだけでなく演習量があるか"どうかも重要であると考えています。
そのためこの点については本書籍はとてもよかったと思います。
手を動かして試せるdokoQLがあること
dokoQLは本書籍の発行会社が提供しているオンラインのSQL学習用webサービスのことです。
書籍で扱っているテーブルが実際に同サービス上で用意されており、それに対してSQLも実行することができます。
そのため、自分で考えたSQLを実行して学習を進めることができます。
悪かったこと
問題の解答に少し誤植がある
問題演習をやっている間に気づいたのですが、解答に誤植がありました。
経験者ならわかるかもしれませんが、初心者にとっては
こう言う書き方もあるのね。参考になります。
となってしまいます。そこから調べることで更なる学力向上となりますが
うーんと思ってしまいました。
dokoQLにSQL実行上限があること
dokoQLには巻末の問題に対応するテーブルも用意されているので、
それらに対してもSQLを実行可能です。
ただSQL実行上限が100回です。
もちろんリセットは可能なのですが、指定した回までリセットというものではなく全リセットです。
初期テーブルからINSERTやUPDATEのような更新処理をしながら作り上げていくので
途中で上限に達してしまった時は台パンしたくなりました。
特に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ください。松岡修造みたいに励ましてあげます。
何度も言いますが、辛いですけど強くなれます。
頑張ってください。
僕も頑張ります。