はじめに
スッキリわかるSQL入門という書籍を読んだので理解できたポイントと感想をまとめたいと思います。 ちなみに自分自身この本を読むまではProgateでSQLをやったのみでした。
学んだこと
SQLの書き方
復習的な部分ではあるのですが、progateで学ぶより、動作ではなく、なぜそうなるのかの部分がより詳しく書かれていて勉強になった。
DBMSとその種類
正直SQL自体は知っていたのですが、Rubyはrubyというような感じと同じでSQLはSQLのようなイメージでSQLという言語兼動作するものが存在していると思っていたのですが、そうではなくDBMSというソフトウェアでSQL文を使うことができるというような認識が正しいようです。 oracleというのは書店とかでよく本を見かけていたのでインフラ系のなんかなんだろうな〜と思ってはいたのですがDBMSの一つなことを知れた。
トランザクション
実際のアプリケーションだと複数のユーザーが同時に利用しているわけなのでデータベースへの操作が同時実行されるような場面も出てくる。 そういうときにエラーにならないようにどのような単位でSQL文をまとめるかなどトランザクション分離レベルを指定して、対策する必要がある。
インデックス
実際の本のように索引を作ることでデータベースから情報を取得するときの処理を早くすることができる。
正規化
DB設計をするときのセオリーのようなもの 1〜3正規化までは基本的に行う。
良かったところ
- まず本の全体的な作りとして図解が多く、未知の部分もストレスなく読むことができました。
dokoQLというサービスを利用して本の内容を簡単に自身のPCでも実行して試すことができるようになっている。
本の中身としては、
SQLの場合はプログラミング言語と違い、書いてあるコードの理解は比較的容易に行える反面、いざ自分がしたい操作をするためのSQL文を書くとなると途端に手が止まってしまうのが自分のレベル感でもあり、割と初学者の人はみんなそうなのかなと思ったりしているのですが、その原因を突き詰めると各種の命令自体を理解はしていても頭の中で綺麗に整理されていない状態だったりするのが原因なのかなと思いました。 この本ではいわゆる4大命令(SELECT,UPDATE,DELETE,INSERT)と言われるような部分だったり、WHEREなどの主要な修飾語を丁寧に説明していくので、本当にSQLの基礎を頭に定着させるような本の作りになっていたこと。
入門とは言いつつもprogateのSQLに比べるとトランザクション、インデックスの作成、正規化などより深い内容も基礎的な範囲で説明されている。
感じたこと
- dokoQLでCREATE系の操作をしたりする場合会員登録が必要になったりするので、割と別のサービスで代替できるかなとは思った。
- あくまでSQLの入門書なので後半の章でDB設計などについて触れてはいるが、その章だけでデータベースを設計できるようになるのは難しいと思った。別途別の書籍や教材などでDB設計を学ぶ必要性はある。
おわりに
SQLの学習として「スッキリわかるSQL入門」読ませていただきました。
とても入門書であると同時に、わからないときに辞書的に開いて使うことができる本だと思うので、今後もSQLを使う際はこの本を片手に取り組んでいこうと思います。