kent備忘ログ

お仕事と趣味生活と

スッキリわかるSQL入門を読んで

学習の一環で 「スッキリわかるSQL入門 第3版 ドリル256問付き」を読んだので、所感をまとめました。

良かったところ

 SQL全般を扱った事がない人向けに、1から学習するように組まれており、初心者向けになっています。

 ただ、それだけで終わる内容ではなく、Ⅲ部・Ⅳ部と良い進めていく内に既存のデータベースを操作する以外にも、新規にデータベースのテーブルから作成する方法、実務におけるクライアントからの要望に基づく要件定義を定める方法まで解説されています。
 500ページ近いボリュームですが、解説文だけでなく、イラストや表を交えた説明の為、判りづらい箇所も丁寧に教える内容となっており、SQLを体系的に学べます。

 また、命令文や用語の説明だけでピンとこない場合も、各解説のサンプルコードが付属アプリの「dokoQL」記載されている為、そのコードを使ってハンズオンで学ぶ事が出来ます。 特に各章に設けられた例題は、学んだ事の理解度を試せます。

 その他、実在する各データーベースソフト毎の違いについても触れられており、同じ用語でも、一部の製品にはその機能がない旨や、使用する命令文の記述方法を製品毎に解説している為、どのソフトを実際に使用する場合でも、その仕様に沿った扱いを学ぶことが出来ます。
(特に巻末には相互のデータベースソフトの互換性や、各社の製品毎の違いを一覧表にしており、一目で比較することが出来ます。)


学んだこと

本書冒頭〜第8章まで

  • DMLによるSQLの基本操作、取得(SELECT文), 挿入(INSERT文), 更新(UPDATE文), 削除(DELETE文)解説
  • 式や演算子・関数・集計関数の解説
-- 第8章まで学べば下記のようなSQL文も書けます。

-- (例)今月初めて発生した科目を抽出したい場合

SELECT DISTINCT 科目 
  FROM 出納記録
 WHERE 科目
NOT IN (SELECT 科目 FROM 前月出納記録) 

(特に冒頭〜第8章のについてはSQLのテーブル操作の基礎となる部分であり、今後定期的に理解を深める為復習したいと思います。)

第9章〜第11章まで

第12章

  • テーブル設計

難しかったこと

 第Ⅳ部第12章の解説である「テーブルの設計」は、Webアプリケーションで必須であるデータベースの基本的な考え方となりますが、クライアントからの要望、現状の課題点を整理した上で、ER図を用いた要件定義(概念設計・論理設計と正規化・物理設計)が求められます。
 実務に於いても非常に重要で実践的な解説となっていますが、私自身、ER図というものを初めて耳にした形で、いざ実際に書いてみようとすると、手が動かない状況でした。

 これに関しては、第8章までに解説されているSQL構文同様、実際に構文を叩いて覚えるのと同様、提示された要件から図を何度か書く練習をする必要があると思いました。

 しかし、作者さんもおっしゃられているように、一度に全てを覚え切ろうとせず、実際に手を動かしてSQL文を書いてみる事と、実行結果を見て分からない事が出てきた時に、この本を読み返して理解を深めたいと思います。
(実際巻末には総合問題としての問題集が付属しており、本書を通じて学んだことを体系的に復習することが出来ます。)