0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

スッキリわかるSQL入門 第4版 を読んでみて

Posted at

今回のブログではスッキリわかるSQL入門 第4版 ドリル256問付き! (スッキリわかる入門シリーズ)を読んで

  • 良かったところ
  • 悪かったところ(もしあれば)
  • 学んだこと
  • 難しかったこと
    以上4点を書いていきます。

スッキリわかるSQL入門 第4版 ドリル256問付き! (スッキリわかる入門シリーズ)

良かったところ

登場人物の会話形式になっている

私が思う専門書のイメージは文章+図という形式だったのですが、
入門書ということもあり読みやすくなっています。

登場人物らが対話形式で話を進めていき疑問が出てきた場面でSQLについての説明をするようになっています。

図解がわかりやすい

図を説明する際に矢印や表を使っているので概念を理解する上でかなりわかりやすいです。

概念を理解したらより詳細をググって調べたり、問題を解いて見たらするという形で学習を進めることでインプット→アウトプットが早くなります。

練習問題だけではない

この書籍は章末に練習問題が用意されています。ただそれだけではなくこの書籍の最後の部分にドリルと総合問題があるところもいい所です。
今までインプットした内容が定着しているか確認するために利用できます。

悪かったところ

※これは書籍の内容自体に問題があるわけではありません。
kindle版ですと文字検索できないところが不便であると感じました。

例えば、ドリルをやっている際に文字列の切り出し→SUBSTRINGと思い出した際にそこのページに一気に戻りたいのですが

command+F もしくは cntl+F がこの書籍のkindle版は使えません

目次→多分この辺?→ページを探す
毎回この作業が必要です。

書籍に頼るよりググった方が早いと感じました。

学んだこと

正規化

正規化とは、データに矛盾を起こさせないようにテーブルを複数に分ける作業のことです。
正規化をするメリットは

  • データの管理がしやすい
  • データ検索が速くなる

このメリットを受けるためには
非正規形→第一正規形→第二正規形→第三正規形
以上3つの変形が必要となります。

第一正規化では「レコード」と「カラム」の繰り返しをなくす。
第二正規化と第三正規化では、Aが決まるとBが1つに決まる項目を別の表にします。

トランザクション

トランザクションとは、一部だけ実行してはいけない複数の処理をひとかたまりにしたものです

一例として送金処理があります。
とある口座からAさんがBさんに1万円送金をする際の処理を見て見ましょう

  1. Aさんが1万円Bさんに送金するボタンをクリック
  2. Aさんの口座から1万円マイナス
  3. Bさんの口座に1万円プラスする
  4. Bさんが送金を確認する

3番の処理中に停電が起こり2番まで行われていたとします。

その場合、復旧した後にAさんの口座を見ると1万円減っていますが
Bさんには送金されていない事になるのです。

このようなことが起こらない為に、トランザクションというものが使われています。

難しかったこと

サブクエリ

概念は理解できましたが、今現在でも問題を解けていません。
SELECTFROM, WHEREどこでもカッコをつけてSELECT文を新しく作れるっていうのが驚きでした。

少し調べると今後、開発の現場に入った際は必要になる技術であると確信しました。

  • 再利用性が高く複数の抽出を1回のSQLにまとめられる
  • 抽出するデータ量を減らして、高速化することができる

今は完全理解できていませんが、少しずつ慣れて使いこなせるようになります

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?