データベース・SQL プログラミング学習

「SQL実践入門」は良書だった。脱初心者、中級者を目指す人にオススメ!!

SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)」を読んだところ良書だったので紹介したいと思います!!

ここまでSQLの仕組み、書き方、パフォーマンスについて良くまとまっている本は他に無いと思います。

SQL実践入門で学べること

  • サブクエリ、CASE式、ウィンドウ関数を駆使した複雑なSQLの書き方
  • パフォーマンスを意識したSQLを書く方法
  • 結合、インデックスの仕組み

こんな人にオススメ

簡単なSQL文は書けるようになったが、

  • パフォーマンス(性能、負荷)を意識したSQL文を書けるようになりたい人
  • もっと複雑なSQL文を書けるようになりたい人
  • DBMSの仕組みを理解したい人
  • 初級者から中級者にレベルアップしたい人

SQLの入門書を1冊読み終わった人向けの書籍です。
SQL超初心者の方は「改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)」を先に読むことをオススメします。

参考独学でSQLを学びたい初心者向けオススメ入門書【まずはこの一冊を読め!!】
参考【厳選】UdemyでSQLを学べるおすすめ講座3選

SQL実践入門の良い点

単にSQLの書き方を解説するだけでなく、DBMSの仕組みやよりパフォーマンスのSQLにするためにどうしたら良いかが書かれています。

実務ではパファーマンス(負荷対策)は避けては通れないのでとても重要な項目です。初級者から中級者になるために最適な書籍でしょう!!

1. 複雑なSQLの書き方を学べる

GROUP BY句、HAVING句、ORDER BY句、CASE式、UNION、PARTITION BY句などの使い方・書き方を学べます。

すべてを頻繁に使うわけではありませんが、知っておいて損は無いです。
(GROUP BY句、ORDER BY句あたりは必須だと思いますが)

2. 実行計画付きで解説してくれる

取り上げているSQLの実行計画(EXPLAIN)も掲載してくれていて、その内容に触れながら解説してくれるので理解しやすいです。

EXPLAINの見方がわからない人は、一緒に学ぶことができると思います。

3. サブクエリの問題点、使い所を学べる

便利なのですぐに使ってしまう方もいるかも知れませんが、サブクエリには色んな弊害があります。

サブクエリにどんな問題点があって、どういったときに有効なのかをわかりやすく解説してくれています。

4. インデックスを有効活用する術を身に付けれる

インデックスがどんなもので、どういうときに有効or無効なのかを丁寧に解説してくれています。

さらにインデックスが上手く使えないときにどうすべきかといったところまで書かれてあるのが素晴らしいです。

5. 結合アルゴリズムとパフォーマンスを出すための方法を知れる

SQLの結合アルゴリズム(Nested Loops、Hash、Soft Merge)の説明をした上で、パフォーマンスを出すために何を意識すべきかを解説してくれています。

結合アルゴリズムを説明してくれているので、どんなSQLだとパフォーマンスが良いのか理由がわかって、とても理解しやすかったです。

 

SQL実践入門の注意点

デメリットという程では無いので「注意点」としました。

掲載、解説してくれるEXPLAINはPostgreSQLとOracleのみです。MySQLのEXPLAIN結果には触れられていません。

ただ、内容自体はどのDBMSでも共通のものなので普段MySQLを使っている人にも役立ちます。

MySQLのEXPLAINの見方の解説はないのでご注意ください。

 


SQL実践入門──高速でわかりやすいクエリの書き方 (WEB+DB PRESS plus)

イチオシ記事

1

自己紹介 フリーランスエンジニアをしているヨノと申します。 独学でプログラミングを学び、ソシャゲ・SaaS開発などを経て、2018年からフリーランスエンジニアとして活動しています。 主にバックエンド中 ...

2

はじめまして、フリーランスエンジニアのヨノと申します。 自己紹介 独学でプログラミングを学び、ソシャゲ・SaaS開発などを経て、2018年からフリーランスエンジニアとして活動しています。 主にバックエ ...

3

ネット上で色々言われているフリーランスエンジニア....。「本当はどうなの?」と思っている人は多いでしょう。 そこで本記事ではフリーランスエンジニア5年生の私が、ネット上の意見も引用しながら実態を解説 ...

-データベース・SQL, プログラミング学習