はじめに
スッキリわかるSQL入門を読みましたので、感想をまとめました。
学んだこと
-
DBとは何か(DBMS、基本的にはRDBMSが主流となっており、本書で取り扱っているDBもRDBMSを例にして説明されている)
-
Select,Insert,Update,Deleteの処理について
-
ANY
演算子、ALL
演算子について(in
句を利用する際の条件指定で利用する)
→サブクエリと合わせて使うことが多く、単体ではin
や<>
で代用できるためあまり使われない -
主キーに対して自然キー、人工キー、代替キーといった呼び方をすること
-
算術演算子
||
で文字列が連結できること(+
の場合もある) -
SQLでCASE文が使える
-
coalesce関数(nullの代替で利用できる)
良かったところ
DBがわからない初心者に対してもわかりやすく学習できるように構成されているところ
- 初心者向けに基礎からわかりやすく解説されており、
DBとは何か、どのような構成となっているか、が
簡潔に示されているところから、DBに対しての概念を簡単に理解しつつ
SQLについて学んでいける点がとても良いと感じた。
単純に技術に対する説明だけでないところ
- 複数条件を付与するクエリに対して改行をした方が可読性が上がる、など
ワンポイント的な説明が含まれている部分は実務などでも活かせる部分だと感じた。
(確かに長くなりがちなクエリだと改行なしで書くと見づらくて仕方ない)
必ず学習した後に学んだことを確認できる練習問題が複数用意されているところ
- 付録として練習問題も用意されているのでより理解を深めることができると感じた。
実行するSQL文がどのようにして行われているのかが説明されているところ
-
Group by
であれば、where
で絞り込みを行った後、検索結果をグループ化して・・・など。
この説明があることによって、whereとhavingの違いについては理解しやすくなっていると思います。
難しかったところ
- 基本的な構文〜サブクエリまでは業務である程度利用していて馴染みもあり、内容に関して理解が難しいと感じるところはあまりなかったです。しかしACID特性や設計に関しては、自分自身の理解や考え方がまだまだ浅いため、うまく使いこなしていくには本を読んだだけでは難しいと感じました。
最後に
実際に業務の中で欲しいデータをどのように抽出するか、データに落とし込んでいくためにどのように設計していくかなどを考えていくと、学んだことを複数組み合わせて実現していかないとならないので、
その部分をどのように考えていくかはもっと勉強してく必要があると感じました。
今後も引き続き勉強していきます。