codaichi’s note

Corporate Engineerの学習記録

スッキリわかる入門シリーズでSQLを学ぶ

はじめに

Happiness ChainでのPython課題を修了し、次はSQL課題です。

今回はSQL課題の中で『スッキリわかるSQL入門』を読んだ感想をまとめたいと思います。

よかったところ

まずはよかったところからです。

よかったと感じたところは大きく分けて2つあります。

1つは内容が充実していて、かつ身近な家計簿を題材としていてわかりやすかったことです。

これまではCourseraでCycber Securityを学んだときに少しだけSQLを学んだことがありました。

ただ、CourseraはCycber Securityを学ぶうちの1つのセクションにSQLがあったので、分量も少なく、基本的な命令文と2つのテーブルからの情報の抽出をするだけというような内容でした。

目的が違うので、比較できるものではありませんが、スッキリわかる入門シリーズではSQLの基本の命令文からテーブル設計まで学ぶことができます。

家計簿という身近な題材のおかげで、理解が深まった部分もあると感じています。

また、本書の構成も理解しやすい順序でした。

本書は1部〜4部まであり、いきなりSQLの基本の4命令文を学びます。その後演算子や関数を学び、データベースについて学ぶ構成です。最後の4部はテーブル設計となっています。

学んだこと

それでは次に、本書を読んで学んだことをまとめます。

SQLの基本の構文

まずはSQLの基本の構文となる4つの命令文です。

操作内容から見ると検索系と更新系に分けられます。

具体的には検索系がSELECTで更新系がUPDATE, DELETE, INSERTでした。

対象データから見ると既存系と新規系に分けられます。

既存系はSELECT, UPDATE, DELETEで新規系がINSERTでした。

操作内容や対象データから4つの命令文を分類することで、初学者からすると理解しやすくなるかと思います。

また、それぞれの式には条件式と計算式がありました。

条件式はTrue or Falseで記載でき、計算式は四則演算に加えて文字列の連結なども可能。

こちらも当たり前と言えば当たり前ですが、頭の中を整理しながら進められるので、苦労せずに進めることができました。

ただし、それぞれの命令をどう実行するのかを指示する修飾はとてもたくさんありました。

一度では覚えられないので、使いながら覚えていくしかないかと思っています。

そして最後にプライマリーキーについてです。

エクセルやスプレッドシートでも特定の値をキーとして関数を利用することがありましたが、改めてプライマリーキーとは何かを学ぶことができました。

プライマリーキーとは、この値を指定すれば、ある1行を完全に特定できる役割を担う列のことでした。

プライマリーキーが備えるべき3つの特性としては、非NULL性、一意性、不変性があります。

難しかったこと

次に難しかったことについてもまとめます。

命令文に関しては、INSERT文の中でサブクエリを使う方法に関しては難しく感じました。概要としては集計結果を表形式で返すサブクエリをINSERT文の中で使うというものなのですが、サブクエリの項目の最後だったこともあり、()で括らないなど他の構文との違いを理解する部分で理解しにくかったのだと思います。

また、最も難しかったのはやはりデータベース設計に関してです。

データベース設計は4部で学びます。

1部〜3部までは本だけで理解して進めることができましたが、4部ではネット検索などもしないとドリルができないことがありました。(これは本が悪いのではなく自分の理解力のなさですが)

また、スプレッドシートでクエリ関数を普段から利用することがあるため、1部〜3部までは対比しながらSQLだとクエリ関数以上のことができて便利だなと思いながら進めていたのですが、最後の4部は毛色が全く異なりそもそもデータベースを設計する方法を学ぶので、慣れていないということもあったと思います。

概念設計→論理設計→物理設計という順序やトップダウンボトムアップなど頭で理解はできますが、わかるとできるの差が大きいと感じました。

終わりに

さて、今回はスッキリわかる入門シリーズでSQLを学んだ感想をまとめました。

SQLに関しては避けては通れないと思いますし、個人的にはシンプルだけど奥が深いように感じられて、楽しく学ぶことができました。

今後も調べたり手を動かしながら学んでいきたいと思います。