達人に学ぶ SQL 徹底指南書 第 2 版 初級者で終わりたくないあなたへ(タツジンニマナブエスキューエルテッテイシナンショ ダイニハン ショキュウシャデオワリタクナイアナタヘ)
アプリケーション- 著者:
- ミック(ミック)
- 出版社:
- 翔泳社
- 出版日:
- 2018年10月11日頃
- ISBN:
- 9784798157825
- シリーズ:
- CodeZine BOOKS
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
SQL を扱うエンジニア必携のロングセラー、 10 年ぶりの改訂!
ーー SQL の正しい書き方・考え方が学べる本
開発者のための Web マガジン「 CodeZine 」の人気連載を大幅加筆・修正して 2008 年に刊行、好評を博した『達人に学ぶ SQL 徹底指南書』の改訂・第 2 版です。
第 2 版では、初版構成を生かしつつ、 SQL の強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、 CASE 式、ウィンドウ関数、外部結合、 HAVING 句、 EXISTS 述語など、 SQL を扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダンな SQL 機能を駆使した書き方」を徹底解説しています。
標準 SQL 準拠のため、 Oracle/SQL Server/DB2/PostgreSQL/MySQL 等々の幅広いデータベースに対応しているほか、実際の開発現場でも活かしやすい実践的なコーディング事例も多数紹介しています。
チューニングテクニックやリレーショナルデータベースの歴史なども網羅。
SQL の原理となっている仕組みや、この言語を作った人々が何を考えて現在のような形にしたのか、というバックグラウンドも掘り起こして伝えます。
・脱初級や、より高みを目指したい DB エンジニア、プログラマ
・「 SQL とは何なのか」を知りたいと思っている人
におすすめの一冊です。
第 1 部 魔法の SQL
1 CASE 式のススメ
2 必ずわかるウィンドウ関数
Column なぜ ON ではなく OVER なのか?
3 自己結合の使い方
Column SQL とフォン・ノイマン
4 3 値論理と NULL
Column 文字列と NULL
5 EXISTS 述語の使い方
6 HAVING 句の力
Column 関係除算
Column HAVING 句とウィンドウ関数
7 ウィンドウ関数で行間比較を行なう
8 外部結合の使い方
9 SQL で集合演算
10 SQL で数列を扱う
11 SQL を速くするぞ
12 SQL プログラミング作法
第 2 部 リレーショナルデータベースの世界
13 RDB 近現代史
14 なぜ“関係”モデルという名前なの?
15 関係に始まり関係に終わる
16 アドレス、この巨大な怪物
17 順序をめぐる冒険
18 GROUP BY と PARTITION BY
19 手続き型から宣言型・集合指向へ頭を切り替える 7 箇条
20 神のいない論理
21 SQL と再帰集合
22 NULL 撲滅委員会
23 SQL における存在の階層
第 3 部 付録
A 演習問題の解答
B 参考文献
技書の森解説
SELECT 文は書けるのに、複雑な集計になるとサブクエリを何段も重ねてしまう。その壁の正体は知識量ではなく、手続きの発想のまま SQL を書いていることにあります。『達人に学ぶ SQL 徹底指南書 第 2 版』 (ミック 著、翔泳社、 2018 年 10 月刊、 A5 判) は、副題「初級者で終わりたくないあなたへ」のとおり、 SQL を集合に対する宣言として捉え直す思考の切り替えを主題にした中級者向けの定番書です。開発者向け Web マガジン CodeZine の連載を元に 2008 年に刊行された初版を、 10 年ぶりに改訂した版にあたります。
二部構成の中身: 魔法の SQL と RDB の世界
第 1 部「魔法の SQL 」は、 CASE 式のススメ、必ずわかるウィンドウ関数、自己結合の使い方、 3 値論理と NULL 、 EXISTS 述語の使い方、 HAVING 句の力、ウィンドウ関数による行間比較、外部結合、集合演算、数列の扱い、 SQL を速くする技法、 SQL プログラミング作法という 12 章立てです。どれも「一応使えるが本当の力を引き出せていない」構文ばかりが選ばれており、章間には SQL とフォン・ノイマン、関係除算といったコラムが挟まれます。第 2 部「リレーショナルデータベースの世界」は RDB の近現代史から始まる読み物編で、この言語を作った人々が何を考えて SQL を設計したのかという背景まで掘り起こします。
第 2 版の読みどころはウィンドウ関数の全面採用
第 2 版の柱はウィンドウ関数です。初版の構成を生かしつつ、標準 SQL の強力な機能であるウィンドウ関数を全面的に採用して多くのコードが書き直されました。集計と行間比較を自己結合や相関サブクエリで無理やり実現していた時代の書き方から、宣言的で読みやすい書き方への移行を、同じ課題の新旧の解法として学べるのが改訂版の価値です。標準 SQL 準拠のため、 Oracle ・ SQL Server ・ DB2 ・PostgreSQL・MySQL といった主要データベースを問わず使える知識として身につきます。
効く理由: 集合指向への世界観の切り替え
この本が効く理由は、 SQL の難所が構文でなく世界観にあるからです。 NULL を含む比較が真でも偽でもない値を返す 3 値論理、行の集まりをまとめて扱う集合指向、手続きを書かず結果の条件だけを宣言するスタイル。これらは手続き型言語の常識と衝突するため、構文の暗記では越えられず、本書のように「なぜそう考えるのか」から説く解説が近道になります。読後は、同じ結果を返す複数のクエリを可読性と性能の観点で比較し、レビューで選択の理由を言葉にできるようになります。
読む順番と向いている読者
読む順番としては、同じ著者の『 SQL 第 2 版 ゼロからはじめるデータベース操作』で基礎文法を終えた人の 2 冊目にちょうど良く、テーブル構造そのものを設計する『達人に学ぶ DB 設計 徹底指南書』と並べると、書く・問う・設計するの三段が同じ著者の一貫した語り口でつながります。 SELECT 文をこれから覚える段階の人には早すぎる本ですが、実務で SQL を書き始めて数か月から数年、自分の書き方に根拠が欲しくなった人には、繰り返し開くたびに回収が続く投資になります。
言及 Qiita 記事 (22 件)
【2024年版】エンジニア1年生の自分に読んでもらいたい書籍
♡ 1722初心者, 技術書, 書籍, React, QiitaEngineerFesta_技術書1年半のソフトウェアエンジニア長期インターンで出会ったオススメ本をたくさん紹介します
♡ 858本, インターン, 書籍紹介プログラミング初心者の学生が2年間で読んだ本の中でオススメを紹介する
♡ 151プログラミング, 本, 技術書, 勉強, 勉強法最近沢山の技術書を読んだので、読書感想文を書いてみた。
♡ 27読書感想文, エンジニア, 書籍紹介自称テックリードを支える技術書Top10
♡ 12技術書, キャリア, 本の紹介SQLのWindow関数で移動平均を求める
♡ 11SQL, データ分析, Window関数, ウィンドウ関数文系大学生が完全独学でソフトウェアエンジニアになった理由と具体的な勉強法
♡ 7プログラミング, ハッカソン, 初心者, Udemy, 独学fukuoka.ex#51:Elixirお茶会〜Ectoを学ぼうの会 LT資料 -- Ecto Getting Started, DB無しでEcto!?、childrenにはFriends.Repoだけ、Ecto本の紹介
♡ 6Elixir, ecto, 40代駆け出しエンジニア, autoracex, AdventCalendar2022文系社会人がデータサイエンティスト検定リテラシーレベルに合格するまで
♡ 5資格, データサイエンス, 資格勉強, データサイエンティスト検定, DS検定ノンプログラマー、はじめてのSQL
♡ 4MySQL, SQL, DB, redash
この本に興味がある方におすすめ
この本に関連
ミック の他の書籍
関連記事
データベース本ガイド - SQL から設計まで学べる技術書の選び方
データベースの基礎から設計、パフォーマンスチューニングまで学べる技術書の選び方と学習順序を紹介します。
Web 開発本ガイド - フロントエンドからバックエンドまで
Web 開発の全体像を学べる技術書の選び方と学習マップを紹介。フレームワーク本の賞味期限問題と公式ドキュメントとの使い分けも解説します。
IT 資格の参考書と技術書の使い分けガイド - 基本情報 / 応用情報で消耗しない選び方
基本情報技術者 / 応用情報技術者などの IT 資格対策本と、体系理解のための技術書の使い分けを解説。年度版の読み方、試験別の定番参考書の系統、資格勉強を「使える知識」につなげる読み方をまとめた選書ガイドです。