見出し画像

本当にSQLがスッキリわかる?「スッキリわかるSQL入門」を読んでみた

はじめに

こんにちは、フロントエンドエンジニアのなべくらです。通常はフロントエンド領域に専念していますが、最近では業務の一環でバックエンドのタスクを担当することもあり、少しずつ知識の幅を広げているところです👀

今回はSQLの基本知識を学びたいと思ったので「スッキリわかるSQL入門」と言う本を一通り読んでみました。最後まで読み切ってみて、この本がどういった本なのか、どう言った人におすすめなのか、そして、タイトルの通りスッキリわかる内容なのかをこの記事で書いていきたいと思います。

概要

この本の内容を簡単に説明すると、データベース操作に不可欠なSQLの基礎内容から、業務で使えるちょっとしたテクニックまで一通り解説した一冊です。初心者がSQLをゼロから学び、中級レベルの知識まで身につけることを目指した内容となっています。

具体的な内容に触れると基本的なSELECT文の作成から始まり、テーブルの作成、レコードの挿入、更新、削除といった操作、さらには集約関数や結合などのより複雑なクエリの作成、さらにはトランザクションといったセキュリティに関する知識までを一通り解説しています。

本書の特徴(私がこの本を選んだ理由)

私が今回、SQLの学習をしたいと思って、この本を1冊目に選んだのは以下の理由からです。

基礎的な内容からある程度応用的な内容までをカバーしている

業務でSQL文をほぼ書いたことがなかったので、ある程度基礎的な事柄から学習をする必要がありました。しかし、あまりに初学者向けの内容で終わってしまうと味気ないので、業務で使えるレベルの内容にも触れられている物を探しました。

概要の章でも触れましたが、この本は基礎的なSELECTの書き方からテーブルの結合まである程度網羅されている印象だったので、求めているものだと感じました。

読みやすく、初学者にもとっつきやすい書面デザイン

初学者として読むので、内容の読みやすさは重視しました。Amazonのページで本の中身を少し見ることができるので、見ていただくとイメージがわくと思いますが、イラストが多く使われており、テキストもあまり詰まっておらず、大変読みやすいデザインになっています。

これにより、ページ数が多い割にはスルスルと進めることができました。

手を動かして学ぶ課題が多い

カバーに「ドリル256問付き」と書いてある通り、自分が手を動かして課題を解いていく形の問題が多いです。イメージでいくと、中学・高校時代の数学の解説付き問題集を解く感じです。

あまりに解説が続くと眠くなってしまう体質なので、ある程度手を動かす問題がある方が、記憶に残りやすいかなと思い選びました。

専用の確認サイトがあり、自分でDB用の環境を構築する必要がない

問題が大量についているのですが、その問題を解くためのdokoQLという環境は既に用意されているので、自分で環境を構築する必要はありません。これはさらっとSQLだけ学びたい私にとってはとても便利でした。

個人的に本から学べたこと

基礎的なSELECTやLIKEといった検索系の指示は知っていたのでサラリと進めました。複数テーブルの連携や、またSQLで使える式や関数と言った内容は自分にとって初めての知識だったので、丁寧に読み進めつつ問題を解くことで理解できました。

具体的には以下のような関数を初めて知りました。

CURRENT_TIMESTAMP関数…現在の日時を入れる関数。自分で日時を書かなくて良くなるので便利。TIMESTAMP以外にもCURRENT_DATE関数(現在の日付)や CURRENT_TIME関数(現在の時間)も存在する。

COALESCE関数…複数の引数を受け取り、受け取った引数を左から順にチェックし、その中から最初に見つかったNULLではない値を返す関数。以下のようにNULLの場合の対替値を設定することができる

COALESCE( メモ, '何も記入されていません') 
-- メモの値がNULLの場合「何も記入されていません」のテキストが表示される

左(右)外部結合…結合する際に左表(右表)については結合相手が見つからなくても、NULLであっても、必ず出力するという指示。これにより、結合相手がない場合でも行が消滅してしまうことがなくなります。
具体的にはLEFT (RIGHT) JOINという指示になります。また、どちらも消滅させないようにするには完全外部結合(FULL JOIN)を使用します。

また、後半で出てきたトランザクションやテーブル設計の方法の知識も全くなかったので、丁寧に読みつつ、理解をすることができました。

まあ、どれも実際に業務で使わないとしっかりとは頭に入らないとは思いますが、一度学んだ内容なので、業務で出会った時は比較的スムーズに理解できると思います。

課題と改善点

基本的には満足でしたが、1点だけ不満点がありました。

課題の量が多すぎる

手を動かすところが多い方がよいと考えて選んだ本でしたが、いかんせん課題が多すぎました。一つの章に大問が2、3問ついているのですが、その課題に行くまでにも、都度手を動かして確認できる箇所はあるので、全ての問題を解こうと思うとかなり時間がかかってしまいます。

学生ならそれでもよいですが、時間がない社会人であれば、そこまで全て解かなくてもよかったかなと思いました。

まとめ

求めていたものは学ぶことができ、「スッキリわかる」という言葉に間違いはないと感じました。ただ本自体が分厚いので、技術書を読むのに慣れている人は、もっと薄くて内容の濃い本でも良いかもしれないです。逆に、技術書を読むのが苦手な人や非エンジニアの人であまり技術書を読んだことがないのであれば、大変おすすめできる一冊です。

この記事が気に入ったらサポートをしてみませんか?